feat:修改nl2sql功能

This commit is contained in:
2026-09-14 10:57:48 +08:00
parent a7f9e182a4
commit 67d5cfc2b8
15 changed files with 206 additions and 54 deletions
+8 -1
View File
@@ -100,12 +100,13 @@ async def query(
for table, scope in (permission.get("row_scopes") or {}).items():
if scope.get("column"):
final_columns.setdefault(table, set()).add(scope["column"])
return validate_select_sql(
validated_option_sql = validate_select_sql(
option_sql,
authorized_tables=permission.get("tables", set()),
authorized_columns=final_columns,
max_rows=max_rows,
)
return validated_option_sql
except SqlSecurityError as exc:
raise QueryServiceError("生成的 SQL 未通过安全校验") from exc
@@ -136,6 +137,11 @@ async def execute_query(
conversation_context=conversation_context,
)
try:
parameters = (
{"advisor_id": request.user_id}
if ":advisor_id" in validated.sql
else None
)
result = await execute_readonly_sql(
session,
validated,
@@ -144,6 +150,7 @@ async def execute_query(
user_id=request.user_id,
masks=masks,
max_rows=request.max_rows,
parameters=parameters,
timeout_seconds=timeout_seconds,
)
except QueryExecutionError as exc: