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
|