Gonalb commited on
Commit
16ac9b8
·
1 Parent(s): 660e128

fix negative feedback

Browse files
__pycache__/app.cpython-313.pyc ADDED
Binary file (14.5 kB). View file
 
__pycache__/config.cpython-313.pyc ADDED
Binary file (3.3 kB). View file
 
app.py CHANGED
@@ -214,8 +214,8 @@ async def on_message(message: cl.Message):
214
  res = await cl.AskActionMessage(
215
  content=f"The query returned {num_rows} rows and {num_cols} columns.\n\nWas this result helpful?",
216
  actions=[
217
- cl.Action(name="feedback", payload={"value": "positive"}, label="👍 Good results"),
218
- cl.Action(name="feedback", payload={"value": "negative"}, label="👎 Not what I wanted")
219
  ],
220
  ).send()
221
 
@@ -275,71 +275,50 @@ async def on_message(message: cl.Message):
275
  ).send()
276
 
277
  # Callback handlers for actions
278
- @cl.action_callback("feedback")
279
- async def on_feedback_action(action):
280
- """Handle feedback action."""
281
- feedback_value = action.payload.get("value")
282
-
283
  client = cl.user_session.get("client")
284
  original_query = cl.user_session.get("original_query")
285
  generated_sql = cl.user_session.get("generated_sql")
286
  optimized_sql = cl.user_session.get("optimized_sql")
287
 
288
- if feedback_value == "positive":
289
- # Handle positive feedback
290
- success = save_feedback_to_bigquery(
291
- client,
292
- original_query,
293
- generated_sql,
294
- optimized_sql,
295
- "positive"
296
- )
297
-
298
- if success:
299
- await cl.Message(content="Thanks for your positive feedback! I've saved it to improve future responses.", author="SQL Assistant").send()
300
- else:
301
- await cl.Message(content="Thanks for your feedback! (Note: There was an issue saving it to the database)", author="SQL Assistant").send()
302
 
303
- @cl.action_callback("feedback_bad")
304
- async def on_feedback_bad(action):
305
  """Handle negative feedback."""
306
  # Ask for more detailed feedback
307
- res = await cl.AskUserMessage(
308
- content="I'm sorry the results weren't what you expected. Could you please provide more details about what was wrong?",
309
- author="SQL Assistant",
310
- timeout=300,
311
- elements=[
312
- cl.Textarea(
313
- id="feedback_details",
314
- label="Your feedback",
315
- initial_value="",
316
- rows=3
317
- )
318
- ]
319
- ).send()
320
 
321
- feedback_details = "negative"
322
- if res and "feedback_details" in res:
323
- feedback_details = f"negative: {res['feedback_details']}"
324
 
325
  client = cl.user_session.get("client")
326
  original_query = cl.user_session.get("original_query")
327
  generated_sql = cl.user_session.get("generated_sql")
328
  optimized_sql = cl.user_session.get("optimized_sql")
329
 
330
- # Save the feedback to BigQuery
331
- success = save_feedback_to_bigquery(
332
  client,
333
  original_query,
334
  generated_sql,
335
  optimized_sql,
336
- feedback_details
337
  )
338
-
339
- if success:
340
- await cl.Message(content="Thanks for your detailed feedback! I've saved it to improve future responses.", author="SQL Assistant").send()
341
- else:
342
- await cl.Message(content="Thanks for your feedback! (Note: There was an issue saving it to the database)", author="SQL Assistant").send()
343
 
344
  # This is needed for Chainlit to run properly
345
  if __name__ == "__main__":
 
214
  res = await cl.AskActionMessage(
215
  content=f"The query returned {num_rows} rows and {num_cols} columns.\n\nWas this result helpful?",
216
  actions=[
217
+ cl.Action(name="feedback_positive", payload={"value": "positive"}, label="👍 Good results"),
218
+ cl.Action(name="feedback_negative", payload={"value": "negative"}, label="👎 Not what I wanted")
219
  ],
220
  ).send()
221
 
 
275
  ).send()
276
 
277
  # Callback handlers for actions
278
+ @cl.action_callback("feedback_positive")
279
+ async def on_feedback_positive(action):
280
+ """Handle positive feedback."""
 
 
281
  client = cl.user_session.get("client")
282
  original_query = cl.user_session.get("original_query")
283
  generated_sql = cl.user_session.get("generated_sql")
284
  optimized_sql = cl.user_session.get("optimized_sql")
285
 
286
+ # Handle positive feedback
287
+ success = save_feedback_to_bigquery(
288
+ client,
289
+ original_query,
290
+ generated_sql,
291
+ optimized_sql,
292
+ "positive"
293
+ )
294
+
295
+ if success:
296
+ await cl.Message(content="Thanks for your positive feedback! I've saved it to improve future responses.", author="SQL Assistant").send()
297
+ else:
298
+ await cl.Message(content="Thanks for your feedback! (Note: There was an issue saving it to the database)", author="SQL Assistant").send()
 
299
 
300
+ @cl.action_callback("feedback_negative")
301
+ async def on_feedback_negative(action):
302
  """Handle negative feedback."""
303
  # Ask for more detailed feedback
304
+ await cl.Message(content="I'm sorry the results weren't what you expected. Please type your feedback about what was wrong.", author="SQL Assistant").send()
 
 
 
 
 
 
 
 
 
 
 
 
305
 
306
+ # Set flag to indicate we're awaiting detailed feedback
307
+ cl.user_session.set("awaiting_feedback", True)
 
308
 
309
  client = cl.user_session.get("client")
310
  original_query = cl.user_session.get("original_query")
311
  generated_sql = cl.user_session.get("generated_sql")
312
  optimized_sql = cl.user_session.get("optimized_sql")
313
 
314
+ # Save initial negative feedback
315
+ save_feedback_to_bigquery(
316
  client,
317
  original_query,
318
  generated_sql,
319
  optimized_sql,
320
+ "negative"
321
  )
 
 
 
 
 
322
 
323
  # This is needed for Chainlit to run properly
324
  if __name__ == "__main__":