fix(llm): 严格本机构隔离,去掉系统级(org_id='0')兜底
This commit is contained in:
parent
e9838a3ec6
commit
791bd88c6d
@ -33,8 +33,8 @@ def _decrypt_key(encrypted: str) -> str:
|
||||
async def _get_model_config(model_name: str = None, org_id: str = None) -> dict:
|
||||
"""Look up model config from llm table. Returns dict with api_base, api_key, model_id.
|
||||
|
||||
org_id 多租户隔离:非空时只取「本机构 + 系统级(org_id='0')」的模型,
|
||||
且本机构模型优先(ORDER BY (org_id='0') 让系统级排后);org_id 为空时不过滤(向后兼容)。
|
||||
org_id 多租户隔离:非空时只取本机构(org_id=${org}$)的模型,不含系统级兜底;
|
||||
org_id 为空时不过滤(向后兼容)。
|
||||
"""
|
||||
global _model_cache
|
||||
|
||||
@ -51,17 +51,17 @@ async def _get_model_config(model_name: str = None, org_id: str = None) -> dict:
|
||||
sql = "SELECT api_base, api_key, model_id FROM llm WHERE name=${name}$ AND status='active'"
|
||||
params = {"name": model_name}
|
||||
if org_id:
|
||||
sql += " AND (org_id=${org}$ OR org_id='0')"
|
||||
sql += " AND org_id=${org}$"
|
||||
params["org"] = org_id
|
||||
sql += " ORDER BY (org_id='0') ASC LIMIT 1"
|
||||
sql += " LIMIT 1"
|
||||
recs = await sor.sqlExe(sql, params)
|
||||
else:
|
||||
sql = "SELECT api_base, api_key, model_id, name FROM llm WHERE status='active'"
|
||||
params = {}
|
||||
if org_id:
|
||||
sql += " AND (org_id=${org}$ OR org_id='0')"
|
||||
sql += " AND org_id=${org}$"
|
||||
params["org"] = org_id
|
||||
sql += " ORDER BY (org_id='0') ASC, id LIMIT 1"
|
||||
sql += " ORDER BY id LIMIT 1"
|
||||
recs = await sor.sqlExe(sql, params)
|
||||
if recs:
|
||||
r = recs[0]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user