-
Notifications
You must be signed in to change notification settings - Fork 600
Closed
Description
SQLBot version
1.5.0
Please describe your requirements or suggestions for improvement
在sqlbot 限制用户权限的sql拼接逻辑中,admin这个用户的权限处理会直接跳过,但普通用户即使为空,似乎也会继续去调用llm处理。
backend/apps/datasource/crud/row_permission.py
get_row_permission_filters中,filters.append({"table": table.table_name, "filter": ""})` 会执行,即使 filter 是空字符串

backend/apps/chat/task/llm.py
if not filters判断结果是 False,不能通过,会继续执行build_table_filter` 和 LLM 调用
即使 filters 中的 filter 字段是空字符串,filters 列表本身不为空,所以不会在 generate_filter 中提前返回 None,仍会调用 build_table_filter 和 LLM。即使没有设置用户权限,普通用户在对话时仍会调用 LLM 生成 SQL .
需要:
sqlbot 在没有设置用户的权限情况下,能直接跳过不涉及权限的处理,返回第一次llm生成的sql。因为这会造成不必要的开销
Reactions are currently unavailable