Spaces:
Sleeping
Sleeping
Aryan Jain commited on
Commit ·
3bdece0
1
Parent(s): 12ed030
feat: update SQL query execution to use text() for improved safety and consistency
Browse files
src/services/_data_extractor.py
CHANGED
|
@@ -12,7 +12,7 @@ from src.entities import (
|
|
| 12 |
)
|
| 13 |
from src.configs import DatabaseConfig
|
| 14 |
from src.utils import PydanticAgent, ChromaClient
|
| 15 |
-
from sqlalchemy import inspect
|
| 16 |
|
| 17 |
|
| 18 |
class DataExtractorService:
|
|
@@ -61,7 +61,7 @@ class DataExtractorService:
|
|
| 61 |
async def _get_data(self, sql_query: str):
|
| 62 |
try:
|
| 63 |
async with DatabaseConfig.async_session() as session:
|
| 64 |
-
result = await session.execute(sql_query)
|
| 65 |
return result.mapping().all()
|
| 66 |
except Exception as e:
|
| 67 |
raise e
|
|
|
|
| 12 |
)
|
| 13 |
from src.configs import DatabaseConfig
|
| 14 |
from src.utils import PydanticAgent, ChromaClient
|
| 15 |
+
from sqlalchemy import inspect, text
|
| 16 |
|
| 17 |
|
| 18 |
class DataExtractorService:
|
|
|
|
| 61 |
async def _get_data(self, sql_query: str):
|
| 62 |
try:
|
| 63 |
async with DatabaseConfig.async_session() as session:
|
| 64 |
+
result = await session.execute(text(sql_query))
|
| 65 |
return result.mapping().all()
|
| 66 |
except Exception as e:
|
| 67 |
raise e
|
src/utils/_pydantic_agent.py
CHANGED
|
@@ -7,6 +7,8 @@ from src.configs import DatabaseConfig
|
|
| 7 |
from src.schemas import SQLQueryExtractor, Message
|
| 8 |
from src.prompts import SQL_QUERY_EXTRACTOR_PROMPT
|
| 9 |
|
|
|
|
|
|
|
| 10 |
import os
|
| 11 |
|
| 12 |
|
|
@@ -55,7 +57,7 @@ class PydanticAgent:
|
|
| 55 |
f"SQL query contains a destructive operation: {sql_query}. Only SELECT queries are allowed."
|
| 56 |
)
|
| 57 |
async with DatabaseConfig.async_session() as session:
|
| 58 |
-
await session.execute(sql_query)
|
| 59 |
except Exception as e:
|
| 60 |
raise e
|
| 61 |
return True
|
|
|
|
| 7 |
from src.schemas import SQLQueryExtractor, Message
|
| 8 |
from src.prompts import SQL_QUERY_EXTRACTOR_PROMPT
|
| 9 |
|
| 10 |
+
from sqlalchemy import text
|
| 11 |
+
|
| 12 |
import os
|
| 13 |
|
| 14 |
|
|
|
|
| 57 |
f"SQL query contains a destructive operation: {sql_query}. Only SELECT queries are allowed."
|
| 58 |
)
|
| 59 |
async with DatabaseConfig.async_session() as session:
|
| 60 |
+
await session.execute(text(sql_query))
|
| 61 |
except Exception as e:
|
| 62 |
raise e
|
| 63 |
return True
|