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