Jeremy Live
commited on
Commit
Β·
c5f62ea
1
Parent(s):
2c77fa2
Revert "mv2"
Browse filesThis reverts commit 926fb907f79cc2c960cb8f0597255501680e3603.
app.py
CHANGED
@@ -355,22 +355,6 @@ def extract_sql_query(text):
|
|
355 |
|
356 |
return None
|
357 |
|
358 |
-
def sanitize_sql_query_text(query: str) -> str:
|
359 |
-
"""Normalize LLM-produced SQL text to be executable by MariaDB/MySQL.
|
360 |
-
|
361 |
-
- Converts literal escape sequences ("\\n", "\\t") to spaces
|
362 |
-
- Collapses excessive whitespace
|
363 |
-
- Strips surrounding code block backticks if any
|
364 |
-
"""
|
365 |
-
if not isinstance(query, str):
|
366 |
-
return query
|
367 |
-
q = query.strip().strip('`')
|
368 |
-
# Replace escaped newlines/tabs that sometimes appear in model outputs
|
369 |
-
q = q.replace("\\n", " ").replace("\\t", " ")
|
370 |
-
# Collapse whitespace to single spaces
|
371 |
-
q = re.sub(r"\s+", " ", q)
|
372 |
-
return q
|
373 |
-
|
374 |
def execute_sql_query(query, db_connection):
|
375 |
"""Ejecuta una consulta SQL y devuelve los resultados como una cadena."""
|
376 |
if not db_connection:
|
@@ -380,7 +364,7 @@ def execute_sql_query(query, db_connection):
|
|
380 |
with db_connection._engine.connect() as connection:
|
381 |
# Ensure SQLAlchemy receives a SQL expression
|
382 |
if sa_text is not None and isinstance(query, str):
|
383 |
-
result = connection.execute(sa_text(
|
384 |
else:
|
385 |
result = connection.execute(query)
|
386 |
rows = result.fetchall()
|
@@ -561,7 +545,7 @@ async def stream_agent_response(question: str, chat_history: List[List[str]]) ->
|
|
561 |
logger.info(f"Detected SQL query: {sql_query}")
|
562 |
db_connection, _ = setup_database_connection()
|
563 |
if db_connection:
|
564 |
-
query_result = execute_sql_query(
|
565 |
|
566 |
# Add the query and its result to the response
|
567 |
response_text += f"\n\n### π Resultado de la consulta:\n```sql\n{sql_query}\n```\n\n{query_result}"
|
@@ -648,7 +632,7 @@ async def stream_agent_response(question: str, chat_history: List[List[str]]) ->
|
|
648 |
logger.info(f"Second pass SQL detected: {sql_query2}")
|
649 |
db_connection, _ = setup_database_connection()
|
650 |
if db_connection:
|
651 |
-
query_result = execute_sql_query(
|
652 |
# Append query and result to response_text for transparency
|
653 |
response_text += f"\n\n### π Resultado de la consulta (2Βͺ pasada):\n```sql\n{sql_query2}\n```\n\n{query_result}"
|
654 |
# Try robust markdown table parse
|
|
|
355 |
|
356 |
return None
|
357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
358 |
def execute_sql_query(query, db_connection):
|
359 |
"""Ejecuta una consulta SQL y devuelve los resultados como una cadena."""
|
360 |
if not db_connection:
|
|
|
364 |
with db_connection._engine.connect() as connection:
|
365 |
# Ensure SQLAlchemy receives a SQL expression
|
366 |
if sa_text is not None and isinstance(query, str):
|
367 |
+
result = connection.execute(sa_text(query))
|
368 |
else:
|
369 |
result = connection.execute(query)
|
370 |
rows = result.fetchall()
|
|
|
545 |
logger.info(f"Detected SQL query: {sql_query}")
|
546 |
db_connection, _ = setup_database_connection()
|
547 |
if db_connection:
|
548 |
+
query_result = execute_sql_query(sql_query, db_connection)
|
549 |
|
550 |
# Add the query and its result to the response
|
551 |
response_text += f"\n\n### π Resultado de la consulta:\n```sql\n{sql_query}\n```\n\n{query_result}"
|
|
|
632 |
logger.info(f"Second pass SQL detected: {sql_query2}")
|
633 |
db_connection, _ = setup_database_connection()
|
634 |
if db_connection:
|
635 |
+
query_result = execute_sql_query(sql_query2, db_connection)
|
636 |
# Append query and result to response_text for transparency
|
637 |
response_text += f"\n\n### π Resultado de la consulta (2Βͺ pasada):\n```sql\n{sql_query2}\n```\n\n{query_result}"
|
638 |
# Try robust markdown table parse
|