feat:修改nl2sql功能
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user