Skip to content

Commit 4db6849

Browse files
praveshkumar1988kartikpersistent
authored andcommitted
Add API payload GCP logging (#805)
1 parent fb34f75 commit 4db6849

File tree

1 file changed

+68
-11
lines changed

1 file changed

+68
-11
lines changed

backend/score.py

Lines changed: 68 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ async def create_source_knowledge_graph_url(
9393

9494
try:
9595
start = time.time()
96+
payload_json_obj = {'api_name':'url_scan', 'db_url':uri, 'userName':userName, 'database':database, 'source_url':source_url, 'aws_access_key_id':aws_access_key_id,
97+
'model':model, 'gcs_bucket_name':gcs_bucket_name, 'gcs_bucket_folder':gcs_bucket_folder, 'source_type':source_type,
98+
'gcs_project_id':gcs_project_id, 'wiki_query':wiki_query, 'logging_time': formatted_time(datetime.now(timezone.utc))}
99+
logger.log_struct(payload_json_obj, "INFO")
96100
if source_url is not None:
97101
source = source_url
98102
else:
@@ -180,6 +184,11 @@ async def extract_knowledge_graph_from_file(
180184
"""
181185
try:
182186
start_time = time.time()
187+
payload_json_obj = {'api_name':'extract', 'db_url':uri, 'userName':userName, 'database':database, 'source_url':source_url, 'aws_access_key_id':aws_access_key_id,
188+
'model':model, 'gcs_bucket_name':gcs_bucket_name, 'gcs_bucket_folder':gcs_bucket_folder, 'source_type':source_type,'gcs_blob_filename':gcs_blob_filename,
189+
'file_name':file_name, 'gcs_project_id':gcs_project_id, 'wiki_query':wiki_query,'allowedNodes':allowedNodes,'allowedRelationship':allowedRelationship,
190+
'language':language ,'retry_condition':retry_condition,'logging_time': formatted_time(datetime.now(timezone.utc))}
191+
logger.log_struct(payload_json_obj, "INFO")
183192
graph = create_graph_database_connection(uri, userName, password, database)
184193
graphDb_data_Access = graphDBdataAccess(graph)
185194

@@ -244,6 +253,8 @@ async def get_source_list(uri:str, userName:str, password:str, database:str=None
244253
"""
245254
try:
246255
start = time.time()
256+
payload_json_obj = {'api_name':'sources_list', 'db_url':uri, 'userName':userName, 'database':database, 'logging_time': formatted_time(datetime.now(timezone.utc))}
257+
logger.log_struct(payload_json_obj, "INFO")
247258
decoded_password = decode_password(password)
248259
if " " in uri:
249260
uri = uri.replace(" ","+")
@@ -263,6 +274,8 @@ async def get_source_list(uri:str, userName:str, password:str, database:str=None
263274
@app.post("/post_processing")
264275
async def post_processing(uri=Form(), userName=Form(), password=Form(), database=Form(), tasks=Form(None)):
265276
try:
277+
payload_json_obj = {'api_name':'post_processing', 'db_url':uri, 'userName':userName, 'database':database, 'tasks':tasks, 'logging_time': formatted_time(datetime.now(timezone.utc))}
278+
logger.log_struct(payload_json_obj, "INFO")
266279
graph = create_graph_database_connection(uri, userName, password, database)
267280
tasks = set(map(str.strip, json.loads(tasks)))
268281

@@ -285,8 +298,9 @@ async def post_processing(uri=Form(), userName=Form(), password=Form(), database
285298
model = "openai-gpt-4o"
286299
await asyncio.to_thread(create_communities, uri, userName, password, database,model)
287300
josn_obj = {'api_name': 'post_processing/create_communities', 'db_url': uri, 'logging_time': formatted_time(datetime.now(timezone.utc))}
288-
logger.log_struct(josn_obj)
289301
logging.info(f'created communities')
302+
303+
logger.log_struct(josn_obj)
290304
return create_api_response('Success', message='All tasks completed successfully')
291305

292306
except Exception as e:
@@ -304,6 +318,9 @@ async def chat_bot(uri=Form(),model=Form(None),userName=Form(), password=Form(),
304318
logging.info(f"QA_RAG called at {datetime.now()}")
305319
qa_rag_start_time = time.time()
306320
try:
321+
payload_json_obj = {'api_name':'chat_bot', 'db_url':uri, 'userName':userName, 'database':database, 'question':question,'document_names':document_names,
322+
'session_id':session_id, 'mode':mode, 'logging_time': formatted_time(datetime.now(timezone.utc))}
323+
logger.log_struct(payload_json_obj, "INFO")
307324
if mode == "graph":
308325
graph = Neo4jGraph( url=uri,username=userName,password=password,database=database,sanitize = True, refresh_schema=True)
309326
else:
@@ -317,7 +334,7 @@ async def chat_bot(uri=Form(),model=Form(None),userName=Form(), password=Form(),
317334
logging.info(f"Total Response time is {total_call_time:.2f} seconds")
318335
result["info"]["response_time"] = round(total_call_time, 2)
319336

320-
json_obj = {'api_name':'chat_bot','db_url':uri,'session_id':session_id, 'logging_time': formatted_time(datetime.now(timezone.utc)), 'elapsed_api_time':f'{total_call_time:.2f}'}
337+
json_obj = {'api_name':'chat_bot','db_url':uri,'session_id':session_id,'mode':mode, 'logging_time': formatted_time(datetime.now(timezone.utc)), 'elapsed_api_time':f'{total_call_time:.2f}'}
321338
logger.log_struct(json_obj, "INFO")
322339

323340
return create_api_response('Success',data=result)
@@ -334,6 +351,9 @@ async def chat_bot(uri=Form(),model=Form(None),userName=Form(), password=Form(),
334351
async def chunk_entities(uri=Form(),userName=Form(), password=Form(), database=Form(), nodedetails=Form(None),entities=Form(),mode=Form()):
335352
try:
336353
start = time.time()
354+
payload_json_obj = {'api_name':'chunk_entities', 'db_url':uri, 'userName':userName, 'database':database, 'nodedetails':nodedetails,'entities':entities,
355+
'mode':mode, 'logging_time': formatted_time(datetime.now(timezone.utc))}
356+
logger.log_struct(payload_json_obj, "INFO")
337357
result = await asyncio.to_thread(get_entities_from_chunkids,uri=uri, username=userName, password=password, database=database,nodedetails=nodedetails,entities=entities,mode=mode)
338358
end = time.time()
339359
elapsed_time = end - start
@@ -358,7 +378,9 @@ async def graph_query(
358378
document_names: str = Form(None),
359379
):
360380
try:
361-
# print(document_names)
381+
payload_json_obj = {'api_name':'graph_query', 'db_url':uri, 'userName':userName, 'database':database, 'document_names':document_names,
382+
'logging_time': formatted_time(datetime.now(timezone.utc))}
383+
logger.log_struct(payload_json_obj, "INFO")
362384
start = time.time()
363385
result = await asyncio.to_thread(
364386
get_graph_results,
@@ -386,6 +408,8 @@ async def graph_query(
386408
@app.post("/clear_chat_bot")
387409
async def clear_chat_bot(uri=Form(),userName=Form(), password=Form(), database=Form(), session_id=Form(None)):
388410
try:
411+
payload_json_obj = {'api_name':'clear_chat_bot', 'db_url':uri, 'userName':userName, 'database':database, 'session_id':session_id, 'logging_time': formatted_time(datetime.now(timezone.utc))}
412+
logger.log_struct(payload_json_obj, "INFO")
389413
graph = create_graph_database_connection(uri, userName, password, database)
390414
result = await asyncio.to_thread(clear_chat_history,graph=graph,session_id=session_id)
391415
return create_api_response('Success',data=result)
@@ -402,6 +426,8 @@ async def clear_chat_bot(uri=Form(),userName=Form(), password=Form(), database=F
402426
async def connect(uri=Form(), userName=Form(), password=Form(), database=Form()):
403427
try:
404428
start = time.time()
429+
payload_json_obj = {'api_name':'connect', 'db_url':uri, 'userName':userName, 'database':database, 'logging_time': formatted_time(datetime.now(timezone.utc))}
430+
logger.log_struct(payload_json_obj, "INFO")
405431
graph = create_graph_database_connection(uri, userName, password, database)
406432
result = await asyncio.to_thread(connection_check_and_get_vector_dimensions, graph, database)
407433
end = time.time()
@@ -423,6 +449,9 @@ async def upload_large_file_into_chunks(file:UploadFile = File(...), chunkNumber
423449
password=Form(), database=Form()):
424450
try:
425451
start = time.time()
452+
payload_json_obj = {'api_name':'upload', 'db_url':uri, 'userName':userName, 'database':database, 'chunkNumber':chunkNumber,'totalChunks':totalChunks,
453+
'original_file_name':originalname,'model':model, 'logging_time': formatted_time(datetime.now(timezone.utc))}
454+
logger.log_struct(payload_json_obj, "INFO")
426455
graph = create_graph_database_connection(uri, userName, password, database)
427456
result = await asyncio.to_thread(upload_file, graph, model, file, chunkNumber, totalChunks, originalname, uri, CHUNK_DIR, MERGED_DIR)
428457
end = time.time()
@@ -448,6 +477,8 @@ async def upload_large_file_into_chunks(file:UploadFile = File(...), chunkNumber
448477
async def get_structured_schema(uri=Form(), userName=Form(), password=Form(), database=Form()):
449478
try:
450479
start = time.time()
480+
payload_json_obj = {'api_name':'schema', 'db_url':uri, 'userName':userName, 'database':database, 'logging_time': formatted_time(datetime.now(timezone.utc))}
481+
logger.log_struct(payload_json_obj, "INFO")
451482
graph = create_graph_database_connection(uri, userName, password, database)
452483
result = await asyncio.to_thread(get_labels_and_relationtypes, graph)
453484
end = time.time()
@@ -518,6 +549,9 @@ async def delete_document_and_entities(uri=Form(),
518549
deleteEntities=Form()):
519550
try:
520551
start = time.time()
552+
payload_json_obj = {'api_name':'delete_document_and_entities', 'db_url':uri, 'userName':userName, 'database':database, 'filenames':filenames,'deleteEntities':deleteEntities,
553+
'source_types':source_types, 'logging_time': formatted_time(datetime.now(timezone.utc))}
554+
logger.log_struct(payload_json_obj, "INFO")
521555
graph = create_graph_database_connection(uri, userName, password, database)
522556
graphDb_data_Access = graphDBdataAccess(graph)
523557
result, files_list_size = await asyncio.to_thread(graphDb_data_Access.delete_file_from_graph, filenames, source_types, deleteEntities, MERGED_DIR, uri)
@@ -573,6 +607,9 @@ async def get_document_status(file_name, url, userName, password, database):
573607
@app.post("/cancelled_job")
574608
async def cancelled_job(uri=Form(), userName=Form(), password=Form(), database=Form(), filenames=Form(None), source_types=Form(None)):
575609
try:
610+
payload_json_obj = {'api_name':'cancelled_job', 'db_url':uri, 'userName':userName, 'database':database,
611+
'filenames':filenames,'source_types':source_types,'logging_time': formatted_time(datetime.now(timezone.utc))}
612+
logger.log_struct(payload_json_obj, "INFO")
576613
graph = create_graph_database_connection(uri, userName, password, database)
577614
result = manually_cancelled_job(graph,filenames, source_types, MERGED_DIR, uri)
578615

@@ -589,6 +626,8 @@ async def cancelled_job(uri=Form(), userName=Form(), password=Form(), database=F
589626
@app.post("/populate_graph_schema")
590627
async def populate_graph_schema(input_text=Form(None), model=Form(None), is_schema_description_checked=Form(None)):
591628
try:
629+
payload_json_obj = {'api_name':'populate_graph_schema', 'model':model, 'is_schema_description_checked':is_schema_description_checked, 'input_text':input_text, 'logging_time': formatted_time(datetime.now(timezone.utc))}
630+
logger.log_struct(payload_json_obj, "INFO")
592631
result = populate_graph_schema_from_text(input_text, model, is_schema_description_checked)
593632
return create_api_response('Success',data=result)
594633
except Exception as e:
@@ -603,6 +642,8 @@ async def populate_graph_schema(input_text=Form(None), model=Form(None), is_sche
603642
@app.post("/get_unconnected_nodes_list")
604643
async def get_unconnected_nodes_list(uri=Form(), userName=Form(), password=Form(), database=Form()):
605644
try:
645+
payload_json_obj = {'api_name':'get_unconnected_nodes_list', 'db_url':uri, 'userName':userName, 'database':database, 'logging_time': formatted_time(datetime.now(timezone.utc))}
646+
logger.log_struct(payload_json_obj, "INFO")
606647
start = time.time()
607648
graph = create_graph_database_connection(uri, userName, password, database)
608649
graphDb_data_Access = graphDBdataAccess(graph)
@@ -624,6 +665,9 @@ async def get_unconnected_nodes_list(uri=Form(), userName=Form(), password=Form(
624665
@app.post("/delete_unconnected_nodes")
625666
async def delete_orphan_nodes(uri=Form(), userName=Form(), password=Form(), database=Form(),unconnected_entities_list=Form()):
626667
try:
668+
payload_json_obj = {'api_name':'delete_unconnected_nodes', 'db_url':uri, 'userName':userName, 'database':database,
669+
'unconnected_entities_list':unconnected_entities_list, 'logging_time': formatted_time(datetime.now(timezone.utc))}
670+
logger.log_struct(payload_json_obj, "INFO")
627671
start = time.time()
628672
graph = create_graph_database_connection(uri, userName, password, database)
629673
graphDb_data_Access = graphDBdataAccess(graph)
@@ -646,6 +690,8 @@ async def delete_orphan_nodes(uri=Form(), userName=Form(), password=Form(), data
646690
async def get_duplicate_nodes(uri=Form(), userName=Form(), password=Form(), database=Form()):
647691
try:
648692
start = time.time()
693+
payload_json_obj = {'api_name':'get_duplicate_nodes', 'db_url':uri, 'userName':userName, 'database':database, 'logging_time': formatted_time(datetime.now(timezone.utc))}
694+
logger.log_struct(payload_json_obj, "INFO")
649695
graph = create_graph_database_connection(uri, userName, password, database)
650696
graphDb_data_Access = graphDBdataAccess(graph)
651697
nodes_list, total_nodes = graphDb_data_Access.get_duplicate_nodes_list()
@@ -667,6 +713,9 @@ async def get_duplicate_nodes(uri=Form(), userName=Form(), password=Form(), data
667713
async def merge_duplicate_nodes(uri=Form(), userName=Form(), password=Form(), database=Form(),duplicate_nodes_list=Form()):
668714
try:
669715
start = time.time()
716+
payload_json_obj = {'api_name':'merge_duplicate_nodes', 'db_url':uri, 'userName':userName, 'database':database,
717+
'duplicate_nodes_list':duplicate_nodes_list, 'logging_time': formatted_time(datetime.now(timezone.utc))}
718+
logger.log_struct(payload_json_obj, "INFO")
670719
graph = create_graph_database_connection(uri, userName, password, database)
671720
graphDb_data_Access = graphDBdataAccess(graph)
672721
result = graphDb_data_Access.merge_duplicate_nodes(duplicate_nodes_list)
@@ -687,6 +736,9 @@ async def merge_duplicate_nodes(uri=Form(), userName=Form(), password=Form(), da
687736
@app.post("/drop_create_vector_index")
688737
async def merge_duplicate_nodes(uri=Form(), userName=Form(), password=Form(), database=Form(), isVectorIndexExist=Form()):
689738
try:
739+
payload_json_obj = {'api_name':'drop_create_vector_index', 'db_url':uri, 'userName':userName, 'database':database,
740+
'isVectorIndexExist':isVectorIndexExist, 'logging_time': formatted_time(datetime.now(timezone.utc))}
741+
logger.log_struct(payload_json_obj, "INFO")
690742
graph = create_graph_database_connection(uri, userName, password, database)
691743
graphDb_data_Access = graphDBdataAccess(graph)
692744
result = graphDb_data_Access.drop_create_vector_index(isVectorIndexExist)
@@ -703,6 +755,9 @@ async def merge_duplicate_nodes(uri=Form(), userName=Form(), password=Form(), da
703755
@app.post("/retry_processing")
704756
async def retry_processing(uri=Form(), userName=Form(), password=Form(), database=Form(), file_name=Form(), retry_condition=Form()):
705757
try:
758+
payload_json_obj = {'api_name':'retry_processing', 'db_url':uri, 'userName':userName, 'database':database, 'file_name':file_name,'retry_condition':retry_condition,
759+
'logging_time': formatted_time(datetime.now(timezone.utc))}
760+
logger.log_struct(payload_json_obj, "INFO")
706761
graph = create_graph_database_connection(uri, userName, password, database)
707762
await asyncio.to_thread(set_status_retry, graph,file_name,retry_condition)
708763
#set_status_retry(graph,file_name,retry_condition)
@@ -719,14 +774,16 @@ async def retry_processing(uri=Form(), userName=Form(), password=Form(), databas
719774
@app.post('/metric')
720775
async def calculate_metric(question=Form(), context=Form(), answer=Form(), model=Form()):
721776
try:
722-
result = await asyncio.to_thread(get_ragas_metrics, question, context, answer, model)
723-
if result is None or "error" in result:
724-
return create_api_response(
725-
'Failed',
726-
message='Failed to calculate evaluation metrics.',
727-
error=result.get("error", "Ragas evaluation returned null")
728-
)
729-
return create_api_response('Success', data=result)
777+
payload_json_obj = {'api_name':'metric', 'context':context, 'answer':answer, 'model':model, 'logging_time': formatted_time(datetime.now(timezone.utc))}
778+
logger.log_struct(payload_json_obj, "INFO")
779+
result = await asyncio.to_thread(get_ragas_metrics, question, context, answer, model)
780+
if result is None or "error" in result:
781+
return create_api_response(
782+
'Failed',
783+
message='Failed to calculate evaluation metrics.',
784+
error=result.get("error", "Ragas evaluation returned null")
785+
)
786+
return create_api_response('Success', data=result)
730787
except Exception as e:
731788
job_status = "Failed"
732789
message = "Error while calculating evaluation metrics"

0 commit comments

Comments
 (0)