Jeremy Live commited on
Commit
d4a3ee0
·
1 Parent(s): 6751efe
Files changed (1) hide show
  1. app.py +28 -32
app.py CHANGED
@@ -543,39 +543,35 @@ async def stream_agent_response(question: str, chat_history: List[List[str]]) ->
543
  logger.error(f"Error updating agent memory: {str(e)}", exc_info=True)
544
 
545
  # Execute the agent with proper error handling
546
- try:
547
- # Add empty assistant message that will be updated
548
- assistant_message = {"role": "assistant", "content": ""}
549
- messages.append(assistant_message)
550
-
551
- # If the user is asking for a chart, steer the agent to be concise
552
- wants_chart, _desired = detect_chart_preferences(question)
553
- input_text = question
554
- if wants_chart:
555
- input_text = (
556
- "Instrucciones: Si el usuario pide una visualización y los datos ya "
557
- "están en el historial, no pidas más contexto. Responde brevemente "
558
- "confirmando que generarás/has generado la gráfica y, si necesitas SQL, "
559
- "devuelve solo la consulta en un bloque ```sql``` sin explicaciones.\n\n"
560
- f"Pregunta del usuario: {question}"
561
- )
562
 
563
- # Let the agent use its memory; don't pass raw chat_history
564
- response = await agent.ainvoke({"input": input_text})
565
- logger.info(f"Agent response type: {type(response)}")
566
- logger.info(f"Agent response content: {str(response)[:500]}...")
567
-
568
- # Handle different response formats
569
- if hasattr(response, 'output') and response.output:
570
- response_text = response.output
571
- elif isinstance(response, str):
572
- response_text = response
573
- elif hasattr(response, 'get') and callable(response.get) and 'output' in response:
574
- response_text = response['output']
575
- else:
576
- response_text = str(response)
577
-
578
- logger.info(f"Extracted response text: {response_text[:200]}...")
579
 
580
  # Check if the response contains an SQL query and it truly looks like SQL
581
  sql_query = extract_sql_query(response_text)
 
543
  logger.error(f"Error updating agent memory: {str(e)}", exc_info=True)
544
 
545
  # Execute the agent with proper error handling
546
+ assistant_message = {"role": "assistant", "content": ""}
547
+ messages.append(assistant_message)
548
+
549
+ wants_chart, _desired = detect_chart_preferences(question)
550
+ input_text = question
551
+ if wants_chart:
552
+ input_text = (
553
+ "Instrucciones: Si el usuario pide una visualización y los datos ya "
554
+ "están en el historial, no pidas más contexto. Responde brevemente "
555
+ "confirmando que generarás/has generado la gráfica y, si necesitas SQL, "
556
+ "devuelve solo la consulta en un bloque ```sql``` sin explicaciones.\n\n"
557
+ f"Pregunta del usuario: {question}"
558
+ )
 
 
 
559
 
560
+ response = await agent.ainvoke({"input": input_text})
561
+ logger.info(f"Agent response type: {type(response)}")
562
+ logger.info(f"Agent response content: {str(response)[:500]}...")
563
+
564
+ # Handle different response formats
565
+ if hasattr(response, 'output') and response.output:
566
+ response_text = response.output
567
+ elif isinstance(response, str):
568
+ response_text = response
569
+ elif hasattr(response, 'get') and callable(response.get) and 'output' in response:
570
+ response_text = response['output']
571
+ else:
572
+ response_text = str(response)
573
+
574
+ logger.info(f"Extracted response text: {response_text[:200]}...")
 
575
 
576
  # Check if the response contains an SQL query and it truly looks like SQL
577
  sql_query = extract_sql_query(response_text)