Jeremy Live
commited on
Commit
·
80869fd
1
Parent(s):
13ca636
Revert "v3"
Browse filesThis reverts commit d4a3ee03b66ff5bfeec8d1f10a95adaecb840e26.
app.py
CHANGED
@@ -543,35 +543,39 @@ 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 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
|
|
|
|
|
|
559 |
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
|
|
575 |
|
576 |
# Check if the response contains an SQL query and it truly looks like SQL
|
577 |
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 |
+
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)
|