fix(model-select): 下拉值改llm.id显示llm.name+start_agent解析id→name

This commit is contained in:
ymq 2026-08-30 09:49:39 +08:00
parent 077de71d78
commit 496a0ca4c8
2 changed files with 14 additions and 1 deletions

View File

@ -25,6 +25,16 @@ if action == 'start_agent':
model_id = (params_kw or {}).get('model_id', '')
role = (params_kw or {}).get('role', 'develop')
# model_id 兼容 llm.id 与 llm.model_id 两种取值(下拉改为传 llm.id
# 统一解析为 llm.name 落库/传给引擎,保证同名不同供应商不漂移。
if model_id:
_r = await sor.sqlExe(
"SELECT name FROM llm WHERE status='active' AND (id=${m}$ OR model_id=${m}$) LIMIT 1",
{"m": model_id})
await sor.sqlExe("COMMIT", {})
if _r:
model_id = getattr(_r[0], 'name', '') or model_id
# Ensure agent config exists
existing = await sor.sqlExe(
"SELECT id FROM pipeline_project_agents WHERE project_id=${pid}$ AND role_name=${role}$",

View File

@ -1,5 +1,7 @@
# cockpit_model_options.dspy - Returns active models with capabilities for dropdown
# Used by cockpit model selector
# 下拉值 = llm.id唯一主键显示 = llm.name。不同供应商可有相同 model_id
# API 模型名),只有 llm.id 唯一,避免同名供应商在下拉里被合并/解析漂移。
# org_id 多租户隔离:非系统级机构只看到本机构的模型(不含系统级兜底)
# selected 标记 = 当前项目的已设模型sd_projects.default_model产线通用、跨会话持久
# 项目未设模型时回退个人全局选择default_llm_id。前端 UiCode 按 selected 恢复选中项,
@ -48,7 +50,8 @@ for r in recs:
'value': r.id,
'text': f"{r.name} ({r.provider})",
'provider': r.provider,
'model_id': r.model_id,
'model_id': r.id, # 下拉值llm.id唯一区分同名不同供应商
'model_id_text': r.name, # 下拉显示llm.name
'capabilities': r.capabilities or 'text',
'selected': (r.name == project_model) if project_model else (r.id == current_llm_id),
})