10
10
# OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
11
# and limitations under the License.
12
12
#
13
+ import os
14
+ import boto3
15
+ import json
16
+ import base64
13
17
from pathlib import Path
14
18
from aiohttp import ClientError
15
19
from langchain_community .vectorstores import OpenSearchVectorSearch
16
- # from opensearchpy import RequestsHttpConnection
20
+ from opensearchpy import RequestsHttpConnection
17
21
from llms import get_embeddings_llm
18
22
import requests
19
- import os
20
- import boto3
21
- import json
22
- import base64
23
23
from enum import Enum
24
24
from requests_aws4auth import AWS4Auth
25
25
s3 = boto3 .client ('s3' )
26
+ from aws_lambda_powertools import Logger , Tracer , Metrics
27
+
28
+
29
+ logger = Logger (service = "QUESTION_ANSWERING" )
30
+ tracer = Tracer (service = "QUESTION_ANSWERING" )
31
+ metrics = Metrics (namespace = "question_answering" , service = "QUESTION_ANSWERING" )
26
32
27
33
28
34
class JobStatus (Enum ):
@@ -101,7 +107,7 @@ def load_vector_db_opensearch(region: str,
101
107
secret_id : str ,
102
108
model_id : str ,
103
109
modality : str ) -> OpenSearchVectorSearch :
104
- print (f"load_vector_db_opensearch, region={ region } , "
110
+ logger . info (f"load_vector_db_opensearch, region={ region } , "
105
111
f"opensearch_domain_endpoint={ opensearch_domain_endpoint } , opensearch_index={ opensearch_index } " )
106
112
107
113
# if the secret id is not provided
@@ -120,15 +126,16 @@ def load_vector_db_opensearch(region: str,
120
126
embedding_function = get_embeddings_llm (model_id ,modality )
121
127
122
128
opensearch_url = opensearch_domain_endpoint if opensearch_domain_endpoint .startswith ("https://" ) else f"https://{ opensearch_domain_endpoint } "
123
- # vector_db = OpenSearchVectorSearch(index_name=opensearch_index,
124
- # embedding_function=embedding_function,
125
- # opensearch_url=opensearch_url,
126
- # http_auth=http_auth,
127
- # use_ssl = True,
128
- # verify_certs = True,
129
- # connection_class = RequestsHttpConnection)
129
+
130
+ vector_db = OpenSearchVectorSearch (index_name = opensearch_index ,
131
+ embedding_function = embedding_function ,
132
+ opensearch_url = opensearch_url ,
133
+ http_auth = http_auth ,
134
+ use_ssl = True ,
135
+ verify_certs = True ,
136
+ connection_class = RequestsHttpConnection )
130
137
vector_db = ""
131
- print (f"returning handle to OpenSearchVectorSearch, vector_db={ vector_db } " )
138
+ logger . info (f"returning handle to OpenSearchVectorSearch, vector_db={ vector_db } " )
132
139
return vector_db
133
140
134
141
def send_job_status (variables ):
@@ -159,8 +166,7 @@ def send_job_status(variables):
159
166
160
167
print (request )
161
168
162
- #GRAPHQL_URL = os.environ['GRAPHQL_URL']
163
- GRAPHQL_URL = "https://j2uzmlvujbhbzoduvpctgkpu2e.appsync-api.us-east-1.amazonaws.com/graphql"
169
+ GRAPHQL_URL = os .environ ['GRAPHQL_URL' ]
164
170
HEADERS = {
165
171
"Content-Type" : "application/json" ,
166
172
}
@@ -172,7 +178,7 @@ def send_job_status(variables):
172
178
auth = aws_auth_appsync ,
173
179
timeout = 10
174
180
)
175
- print ('res :: {}' ,responseJobstatus )
181
+ logger . info ('res :: {}' ,responseJobstatus )
176
182
177
183
def get_presigned_url (bucket ,key ) -> str :
178
184
try :
@@ -181,23 +187,23 @@ def get_presigned_url(bucket,key) -> str:
181
187
Params = {'Bucket' : bucket , 'Key' : key },
182
188
ExpiresIn = 900
183
189
)
184
- print (f"presigned url generated for { key } from { bucket } " )
190
+ logger . info (f"presigned url generated for { key } from { bucket } " )
185
191
return url
186
192
except Exception as exception :
187
- print (f"Reason: { exception } " )
193
+ logger . error (f"Reason: { exception } " )
188
194
return ""
189
195
190
196
def download_file (bucket ,key )-> str :
191
197
try :
192
198
file_path = "/tmp/" + os .path .basename (key )
193
199
s3 .download_file (bucket , key ,file_path )
194
- print (f"file downloaded { file_path } " )
200
+ logger . info (f"file downloaded { file_path } " )
195
201
return file_path
196
202
except ClientError as client_err :
197
- print (f"Couldn\' t download file { client_err .response ['Error' ]['Message' ]} " )
203
+ logger . error (f"Couldn\' t download file { client_err .response ['Error' ]['Message' ]} " )
198
204
199
205
except Exception as exp :
200
- print (f"Couldn\' t download file : { exp } " )
206
+ logger . error (f"Couldn\' t download file : { exp } " )
201
207
202
208
def encode_image_to_base64 (image_file_path ,image_file ) -> str :
203
209
with open (image_file_path , "rb" ) as image_file :
0 commit comments