feat(cockpit): 会话agent模型选择收窄为对话能力t2t/i2t/m2t(2026-09-06用户定夺)——下拉传capabilities=chat,持久化入口(set_agent_model/cockpit_agent)同守卫防绕过
This commit is contained in:
parent
2740ae1451
commit
0cf735018e
@ -27,8 +27,10 @@ if action == 'start_agent':
|
||||
|
||||
# model_id 兼容 id / vendor_model_id / 注册名 → 统一走模型治理模块解析
|
||||
# (pipeline_llm.selection.resolve_model_name,唯一解析点,不再各模块自查表)
|
||||
# capabilities='chat':角色 agent 只接受对话能力(t2t/i2t/m2t,2026-09-06)
|
||||
if model_id:
|
||||
_resolved = await llm_resolve_model_name(model_id, org_id=org_id)
|
||||
_resolved = await llm_resolve_model_name(model_id, org_id=org_id,
|
||||
capabilities='chat')
|
||||
if _resolved:
|
||||
model_id = _resolved
|
||||
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
# cockpit_model_options.dspy — 驾驶舱模型下拉
|
||||
# 2026-09-04 收敛:实现统一在模型治理模块 pipeline_llm.selection.model_options,
|
||||
# 本文件只作 URL 入口(驾驶舱 AgentIO 的 model_dataurl 指向此处)。
|
||||
# capabilities='chat':会话 agent 只列文本输出对话能力(t2t/i2t/m2t),
|
||||
# 过滤掉 embedding/rerank/图视频生成等非对话模型(2026-09-06 用户定夺)。
|
||||
|
||||
uid = await get_user()
|
||||
org_id = (await get_userorgid()) or ''
|
||||
session_id = (params_kw or {}).get('session_id', '') or ''
|
||||
|
||||
rows = await llm_model_options(org_id, uid=uid or '', session_id=session_id,
|
||||
value_field='id')
|
||||
value_field='id', capabilities='chat')
|
||||
return rows
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
# get_model_options.dspy — 角色模型配置下拉(value=模型注册名)
|
||||
# 2026-09-04 收敛:实现统一在模型治理模块 pipeline_llm.selection.model_options,
|
||||
# 本文件只作 URL 入口。保留历史格式:首项「缺省(用项目默认模型)」+ value/text 两列。
|
||||
# capabilities='chat':角色模型也是会话/任务 agent 用的对话模型,只列 t2t/i2t/m2t
|
||||
# (2026-09-06 用户定夺;防把 embedding 等非对话模型配给角色后推理链报能力不匹配)。
|
||||
|
||||
rows = [{'value': '', 'text': '缺省(用项目默认模型)'}]
|
||||
try:
|
||||
org_id = await get_userorgid()
|
||||
if org_id:
|
||||
opts = await llm_model_options(org_id, value_field='name')
|
||||
opts = await llm_model_options(org_id, value_field='name', capabilities='chat')
|
||||
rows += [{'value': r['value'], 'text': r['text']} for r in opts]
|
||||
return json.dumps(rows, ensure_ascii=False)
|
||||
except Exception as e:
|
||||
|
||||
@ -15,9 +15,10 @@ if not llm_id:
|
||||
org_id = await get_userorgid() or '0'
|
||||
|
||||
# 统一解析:解析得到注册名即代表存在且属于本机构(系统级不过滤)
|
||||
name = await llm_resolve_model_name(llm_id, org_id=org_id)
|
||||
# capabilities='chat':个人默认模型是会话 agent 用的,只接受对话能力(t2t/i2t/m2t)
|
||||
name = await llm_resolve_model_name(llm_id, org_id=org_id, capabilities='chat')
|
||||
if not name:
|
||||
return json.dumps({"success": False, "error": "模型不存在或不属于本机构"}, ensure_ascii=False)
|
||||
return json.dumps({"success": False, "error": "模型不存在、不属于本机构或不是对话模型(t2t/i2t/m2t)"}, ensure_ascii=False)
|
||||
|
||||
# 反查模型 id 持久化(个人默认选择按 id 存,与下拉 value 一致)
|
||||
_model_id = llm_id
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user