Skip to content

Commit 104c184

Browse files
Failed file copy to another bucket, user agent configurable and added some extra logs
1 parent 2f8f9d8 commit 104c184

File tree

6 files changed

+33
-7
lines changed

6 files changed

+33
-7
lines changed

backend/example.env

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ LANGCHAIN_PROJECT = ""
2121
LANGCHAIN_TRACING_V2 = ""
2222
LANGCHAIN_ENDPOINT = ""
2323
GCS_FILE_CACHE = "" #save the file into GCS or local, SHould be True or False
24-
NEO4J_USER_AGENT=""
24+
NEO4J_USER_AGENT = ""
25+
ENABLE_USER_AGENT = ""

backend/score.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ async def create_source_knowledge_graph_url(
114114
return create_api_response('Failed',message='source_type is other than accepted source')
115115

116116
message = f"Source Node created successfully for source type: {source_type} and source: {source}"
117-
josn_obj = {'api_name':'url_scan','db_url':uri,'url_scanned_file':lst_file_name}
117+
josn_obj = {'api_name':'url_scan','db_url':uri,'url_scanned_file':lst_file_name, 'source_url':source_url, 'wiki_query':wiki_query}
118118
logger.log_struct(josn_obj)
119119
return create_api_response("Success",message=message,success_count=success_count,failed_count=failed_count,file_name=lst_file_name)
120120
except Exception as e:
@@ -197,6 +197,9 @@ async def extract_knowledge_graph_from_file(
197197
if result is not None:
198198
result['db_url'] = uri
199199
result['api_name'] = 'extract'
200+
result['source_url'] = source_url
201+
result['wiki_query'] = wiki_query
202+
result['source_type'] = source_type
200203
logger.log_struct(result)
201204
return create_api_response('Success', data=result, file_source= source_type)
202205
except Exception as e:
@@ -207,11 +210,13 @@ async def extract_knowledge_graph_from_file(
207210
if source_type == 'local file':
208211
if gcs_file_cache == 'True':
209212
folder_name = create_gcs_bucket_folder_name_hashed(uri,file_name)
213+
copy_failed_file(BUCKET_UPLOAD, BUCKET_FAILED_FILE, folder_name, file_name)
214+
time.sleep(5)
210215
delete_file_from_gcs(BUCKET_UPLOAD,folder_name,file_name)
211216
else:
212217
logging.info(f'Deleted File Path: {merged_file_path} and Deleted File Name : {file_name}')
213218
delete_uploaded_local_file(merged_file_path,file_name)
214-
josn_obj = {'message':message,'error_message':error_message, 'file_name': file_name,'status':'Failed','db_url':uri,'failed_count':1, 'source_type': source_type}
219+
josn_obj = {'message':message,'error_message':error_message, 'file_name': file_name,'status':'Failed','db_url':uri,'failed_count':1, 'source_type': source_type, 'source_url':source_url, 'wiki_query':wiki_query}
215220
logger.log_struct(josn_obj)
216221
logging.exception(f'File Failed in extraction: {josn_obj}')
217222
return create_api_response('Failed', message=message + error_message[:100], error=error_message, file_name = file_name)
@@ -284,7 +289,7 @@ async def chat_bot(uri=Form(None),model=Form(None),userName=Form(None), password
284289
logging.info(f"Total Response time is {total_call_time:.2f} seconds")
285290
result["info"]["response_time"] = round(total_call_time, 2)
286291

287-
josn_obj = {'api_name':'chat_bot','db_url':uri}
292+
josn_obj = {'api_name':'chat_bot','db_url':uri,'session_id':session_id}
288293
logger.log_struct(josn_obj)
289294
return create_api_response('Success',data=result)
290295
except Exception as e:
@@ -331,7 +336,7 @@ async def graph_query(
331336
query_type=query_type,
332337
document_names=document_names
333338
)
334-
josn_obj = {'api_name':'graph_query','db_url':uri}
339+
josn_obj = {'api_name':'graph_query','db_url':uri,'document_names':document_names}
335340
logger.log_struct(josn_obj)
336341
return create_api_response('Success', data=result)
337342
except Exception as e:

backend/src/document_sources/gcs_bucket.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,14 @@ def delete_file_from_gcs(bucket_name,folder_name, file_name):
139139
logging.info('File deleted from GCS successfully')
140140
except Exception as e:
141141
raise Exception(e)
142+
143+
def copy_failed_file(source_bucket_name,dest_bucket_name,folder_name, file_name):
144+
try:
145+
storage_client = storage.Client()
146+
bucket = storage_client.bucket(source_bucket_name)
147+
folder_file_name = folder_name +'/'+file_name
148+
source_blob = bucket.blob(folder_file_name)
149+
bucket.copy_blob(source_blob,dest_bucket_name,file_name)
150+
logging.info(f'Failed file {file_name} copied to {dest_bucket_name} from {source_bucket_name} in GCS successfully')
151+
except Exception as e:
152+
raise Exception(e)

backend/src/graph_query.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ def get_graphDB_driver(uri, username, password):
5555
"""
5656
try:
5757
logging.info(f"Attempting to connect to the Neo4j database at {uri}")
58-
driver = GraphDatabase.driver(uri, auth=(username, password), user_agent=os.environ.get('NEO4J_USER_AGENT'))
58+
enable_user_agent = os.environ.get("ENABLE_USER_AGENT", "False").lower() in ("true", "1", "yes")
59+
if enable_user_agent:
60+
driver = GraphDatabase.driver(uri, auth=(username, password), user_agent=os.environ.get('NEO4J_USER_AGENT'))
61+
else:
62+
driver = GraphDatabase.driver(uri, auth=(username, password))
5963
logging.info("Connection successful")
6064
return driver
6165
except Exception as e:

backend/src/shared/common_fn.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ def get_chunk_and_graphDocument(graph_document_list, chunkId_chunkDoc_list):
7777
return lst_chunk_chunkId_document
7878

7979
def create_graph_database_connection(uri, userName, password, database):
80-
graph = Neo4jGraph(url=uri, database=database, username=userName, password=password, refresh_schema=False, sanitize=True,driver_config={'user_agent':os.environ.get('NEO4J_USER_AGENT')})
80+
enable_user_agent = os.environ.get("ENABLE_USER_AGENT", "False").lower() in ("true", "1", "yes")
81+
if enable_user_agent:
82+
graph = Neo4jGraph(url=uri, database=database, username=userName, password=password, refresh_schema=False, sanitize=True,driver_config={'user_agent':os.environ.get('NEO4J_USER_AGENT')})
83+
else:
84+
graph = Neo4jGraph(url=uri, database=database, username=userName, password=password, refresh_schema=False, sanitize=True)
8185
return graph
8286

8387

backend/src/shared/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
GEMINI_MODELS = ["gemini-1.0-pro", "gemini-1.5-pro"]
1212
GROQ_MODELS = ["groq-llama3"]
1313
BUCKET_UPLOAD = 'llm-graph-builder-upload'
14+
BUCKET_FAILED_FILE = 'llm-graph-builder-failed'
1415
PROJECT_ID = 'llm-experiments-387609'
1516

1617

0 commit comments

Comments
 (0)