33
33
# Page Configuration
34
34
st .set_page_config (
35
35
page_icon = "🗃️" ,
36
- page_title = "Chat with Your DB " ,
36
+ page_title = "Transforming Questions into Queries " ,
37
37
layout = "wide"
38
38
)
39
39
@@ -325,7 +325,7 @@ def display_summary_statistics(df: pd.DataFrame) -> None:
325
325
326
326
def handle_query_response (response : dict , db_name : str , db_type : str , host : Optional [str ] = None , user : Optional [str ] = None , password : Optional [str ] = None ) -> None :
327
327
"""
328
- Process the API response and display query results, charts, and decision log.
328
+ Process the API response and display query results, charts, and decision log with enhanced error handling .
329
329
"""
330
330
try :
331
331
query = response .get ('query' , '' )
@@ -334,7 +334,8 @@ def handle_query_response(response: dict, db_name: str, db_type: str, host: Opti
334
334
visualization_recommendation = response .get ('visualization_recommendation' , None )
335
335
336
336
if error :
337
- st .error (f"Error generating SQL query: { error } " )
337
+ detailed_error = generate_detailed_error_message (error )
338
+ st .error (f"Error generating SQL query: { detailed_error } " )
338
339
return
339
340
340
341
if not query :
@@ -447,7 +448,8 @@ def handle_query_response(response: dict, db_name: str, db_type: str, host: Opti
447
448
st .session_state .query_timestamps .append (pd .Timestamp .now ())
448
449
449
450
except Exception as e :
450
- st .error (f"An unexpected error occurred: { e } " )
451
+ detailed_error = generate_detailed_error_message (str (e ))
452
+ st .error (f"An unexpected error occurred: { detailed_error } " )
451
453
logger .exception (f"Unexpected error: { e } " )
452
454
453
455
@@ -541,6 +543,14 @@ def analyze_dataframe_for_visualization(df: pd.DataFrame) -> list:
541
543
logger .debug (f"Ordered Suggestions: { ordered_suggestions } " )
542
544
return ordered_suggestions
543
545
546
+ def generate_detailed_error_message (error_message : str ) -> str :
547
+ """
548
+ Use OpenAI to generate a detailed explanation of the error message.
549
+ """
550
+ prompt = f"Provide a detailed and user-friendly explanation for the following error message:\n \n { error_message } "
551
+ detailed_error = get_completion_from_messages (SYSTEM_MESSAGE , prompt )
552
+ return detailed_error .strip () if detailed_error else error_message
553
+
544
554
# Database Setup
545
555
db_type = st .sidebar .selectbox ("Select Database Type 🗄️" , options = ["SQLite" , "PostgreSQL" ])
546
556
0 commit comments