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:
|
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.
|
"""Look up model config from llm table. Returns dict with api_base, api_key, model_id.
|
||||||
|
|
||||||
org_id 多租户隔离:非空时只取「本机构 + 系统级(org_id='0')」的模型,
|
org_id 多租户隔离:非空时只取本机构(org_id=${org}$)的模型,不含系统级兜底;
|
||||||
且本机构模型优先(ORDER BY (org_id='0') 让系统级排后);org_id 为空时不过滤(向后兼容)。
|
org_id 为空时不过滤(向后兼容)。
|
||||||
"""
|
"""
|
||||||
global _model_cache
|
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'"
|
sql = "SELECT api_base, api_key, model_id FROM llm WHERE name=${name}$ AND status='active'"
|
||||||
params = {"name": model_name}
|
params = {"name": model_name}
|
||||||
if org_id:
|
if org_id:
|
||||||
sql += " AND (org_id=${org}$ OR org_id='0')"
|
sql += " AND org_id=${org}$"
|
||||||
params["org"] = org_id
|
params["org"] = org_id
|
||||||
sql += " ORDER BY (org_id='0') ASC LIMIT 1"
|
sql += " LIMIT 1"
|
||||||
recs = await sor.sqlExe(sql, params)
|
recs = await sor.sqlExe(sql, params)
|
||||||
else:
|
else:
|
||||||
sql = "SELECT api_base, api_key, model_id, name FROM llm WHERE status='active'"
|
sql = "SELECT api_base, api_key, model_id, name FROM llm WHERE status='active'"
|
||||||
params = {}
|
params = {}
|
||||||
if org_id:
|
if org_id:
|
||||||
sql += " AND (org_id=${org}$ OR org_id='0')"
|
sql += " AND org_id=${org}$"
|
||||||
params["org"] = org_id
|
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)
|
recs = await sor.sqlExe(sql, params)
|
||||||
if recs:
|
if recs:
|
||||||
r = recs[0]
|
r = recs[0]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user