Ari commited on
Commit
df5408a
·
verified ·
1 Parent(s): 746d24c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -10
app.py CHANGED
@@ -35,9 +35,12 @@ data.to_sql(table_name, conn, index=False, if_exists='replace')
35
  valid_columns = list(data.columns)
36
 
37
  # Display the conversation thread
38
- st.write("### Conversation Thread:")
39
  for message in st.session_state.conversation:
40
- st.write(message)
 
 
 
41
 
42
  # Step 3: Define SQL validation helpers
43
  def validate_sql(query, valid_columns):
@@ -82,7 +85,6 @@ if user_prompt:
82
  # Custom logic to return columns
83
  columns_response = f"The columns are: {', '.join(valid_columns)}"
84
  st.session_state.conversation.append(f"Bot: {columns_response}")
85
- st.write(f"The columns are: {', '.join(valid_columns)}")
86
  else:
87
  # Generate SQL query based on user input
88
  columns = ', '.join(valid_columns)
@@ -93,27 +95,24 @@ if user_prompt:
93
  })
94
 
95
  # Debug: Display generated SQL query for inspection
96
- st.write(f"Generated SQL Query:\n{generated_sql}")
97
 
98
  # Step 7: Validate SQL query
99
  if not validate_sql_with_sqlparse(generated_sql):
100
  error_message = "Generated SQL is not valid."
101
  st.session_state.conversation.append(f"Bot: {error_message}")
102
- st.write(error_message)
103
  elif not validate_sql(generated_sql, valid_columns)[0]:
104
  invalid_column_message = "Generated SQL references invalid columns."
105
  st.session_state.conversation.append(f"Bot: {invalid_column_message}")
106
- st.write(invalid_column_message)
107
  else:
108
  # Step 8: Execute SQL query
109
  result = pd.read_sql_query(generated_sql, conn)
110
- st.write("Query Results:")
111
- st.dataframe(result)
112
- st.session_state.conversation.append("Bot: Here are the results of your query.")
113
  except Exception as e:
114
  logging.error(f"An error occurred: {e}")
115
  error_message = f"Error: {e}"
116
  st.session_state.conversation.append(f"Bot: {error_message}")
117
- st.write(f"Error: {e}")
118
 
119
  # Persist the conversation after each message
 
35
  valid_columns = list(data.columns)
36
 
37
  # Display the conversation thread
38
+ st.markdown("### Conversation Thread:")
39
  for message in st.session_state.conversation:
40
+ if message.startswith("User:"):
41
+ st.markdown(f"<p style='color:blue'><strong>{message}</strong></p>", unsafe_allow_html=True)
42
+ else:
43
+ st.markdown(f"<p style='color:green'><strong>{message}</strong></p>", unsafe_allow_html=True)
44
 
45
  # Step 3: Define SQL validation helpers
46
  def validate_sql(query, valid_columns):
 
85
  # Custom logic to return columns
86
  columns_response = f"The columns are: {', '.join(valid_columns)}"
87
  st.session_state.conversation.append(f"Bot: {columns_response}")
 
88
  else:
89
  # Generate SQL query based on user input
90
  columns = ', '.join(valid_columns)
 
95
  })
96
 
97
  # Debug: Display generated SQL query for inspection
98
+ st.session_state.conversation.append(f"Bot: Generated SQL Query:\n{generated_sql}")
99
 
100
  # Step 7: Validate SQL query
101
  if not validate_sql_with_sqlparse(generated_sql):
102
  error_message = "Generated SQL is not valid."
103
  st.session_state.conversation.append(f"Bot: {error_message}")
 
104
  elif not validate_sql(generated_sql, valid_columns)[0]:
105
  invalid_column_message = "Generated SQL references invalid columns."
106
  st.session_state.conversation.append(f"Bot: {invalid_column_message}")
 
107
  else:
108
  # Step 8: Execute SQL query
109
  result = pd.read_sql_query(generated_sql, conn)
110
+ st.session_state.conversation.append("Bot: Here are the results of your query:")
111
+ st.session_state.conversation.append(result.to_string(index=False)) # Add query result as string
112
+
113
  except Exception as e:
114
  logging.error(f"An error occurred: {e}")
115
  error_message = f"Error: {e}"
116
  st.session_state.conversation.append(f"Bot: {error_message}")
 
117
 
118
  # Persist the conversation after each message