Skip to content

Commit 134ce43

Browse files
committed
🐛 Improve error handling
1 parent 005f3ee commit 134ce43

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

NLP2SQL.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
# Page Configuration
3434
st.set_page_config(
3535
page_icon="🗃️",
36-
page_title="Chat with Your DB",
36+
page_title="Transforming Questions into Queries",
3737
layout="wide"
3838
)
3939

@@ -325,7 +325,7 @@ def display_summary_statistics(df: pd.DataFrame) -> None:
325325

326326
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:
327327
"""
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.
329329
"""
330330
try:
331331
query = response.get('query', '')
@@ -334,7 +334,8 @@ def handle_query_response(response: dict, db_name: str, db_type: str, host: Opti
334334
visualization_recommendation = response.get('visualization_recommendation', None)
335335

336336
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}")
338339
return
339340

340341
if not query:
@@ -447,7 +448,8 @@ def handle_query_response(response: dict, db_name: str, db_type: str, host: Opti
447448
st.session_state.query_timestamps.append(pd.Timestamp.now())
448449

449450
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}")
451453
logger.exception(f"Unexpected error: {e}")
452454

453455

@@ -541,6 +543,14 @@ def analyze_dataframe_for_visualization(df: pd.DataFrame) -> list:
541543
logger.debug(f"Ordered Suggestions: {ordered_suggestions}")
542544
return ordered_suggestions
543545

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+
544554
# Database Setup
545555
db_type = st.sidebar.selectbox("Select Database Type 🗄️", options=["SQLite", "PostgreSQL"])
546556

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy