Jeremy Live commited on
Commit
2de8ed1
·
1 Parent(s): e0bf1a3

better handle agent responses and improve error logging

Browse files
Files changed (1) hide show
  1. app.py +23 -6
app.py CHANGED
@@ -358,16 +358,28 @@ async def stream_agent_response(question: str, chat_history: List) -> List[Dict]
358
  assistant_message = {"role": "assistant", "content": ""}
359
  messages.append(assistant_message)
360
 
361
- # Execute the agent
362
- response = await agent.ainvoke({"input": question, "chat_history": chat_history})
363
-
364
- # Process the response
365
- if hasattr(response, 'output') and response.output:
366
- response_text = response.output
 
 
 
 
 
 
 
 
 
 
 
367
 
368
  # Check if the response contains an SQL query
369
  sql_query = extract_sql_query(response_text)
370
  if sql_query:
 
371
  # Execute the query and update the response
372
  db_connection, _ = setup_database_connection()
373
  if db_connection:
@@ -379,6 +391,11 @@ async def stream_agent_response(question: str, chat_history: List) -> List[Dict]
379
  # Update the assistant's message with the response
380
  assistant_message["content"] = response_text
381
 
 
 
 
 
 
382
  else:
383
  assistant_message["content"] = "Error: No se recibió respuesta del agente."
384
 
 
358
  assistant_message = {"role": "assistant", "content": ""}
359
  messages.append(assistant_message)
360
 
361
+ # Execute the agent with proper error handling
362
+ try:
363
+ response = await agent.ainvoke({"input": question, "chat_history": chat_history})
364
+ logger.info(f"Agent response type: {type(response)}")
365
+ logger.info(f"Agent response content: {str(response)[:500]}...")
366
+
367
+ # Handle different response formats
368
+ if hasattr(response, 'output') and response.output:
369
+ response_text = response.output
370
+ elif isinstance(response, str):
371
+ response_text = response
372
+ elif hasattr(response, 'get') and callable(response.get) and 'output' in response:
373
+ response_text = response['output']
374
+ else:
375
+ response_text = str(response)
376
+
377
+ logger.info(f"Extracted response text: {response_text[:200]}...")
378
 
379
  # Check if the response contains an SQL query
380
  sql_query = extract_sql_query(response_text)
381
  if sql_query:
382
+ logger.info(f"Detected SQL query: {sql_query}")
383
  # Execute the query and update the response
384
  db_connection, _ = setup_database_connection()
385
  if db_connection:
 
391
  # Update the assistant's message with the response
392
  assistant_message["content"] = response_text
393
 
394
+ except Exception as e:
395
+ error_msg = f"Error al ejecutar el agente: {str(e)}"
396
+ logger.error(error_msg, exc_info=True)
397
+ assistant_message["content"] = f"## ❌ Error\n\n{error_msg}"
398
+
399
  else:
400
  assistant_message["content"] = "Error: No se recibió respuesta del agente."
401