- selection.CHAT_CAPS=('t2t','i2t','m2t') 作为会话形态能力白名单唯一事实源
- model_options/resolve_model_name 加 capabilities 参数('chat'哨兵),
IN 列表展开占位符(sqlor传list会崩),capability 空串按 t2t 归一(COALESCE+NULLIF)
- chat_inference 同步门禁从「只认 t2t」放宽到 CHAT_CAPS——
实测根因:测试库 6 个机构策略主模型全是 qwen3.8-max(i2t),
16:28 已产生 FAILED「capability mismatch: i2t != t2t」,会话agent选它必挂
- m2t 入字典四处同步:种子 init/data.json + 端点注释 models.dspy
+ design-spec §6 能力表(+ 提取提示词在 pipeline-platform)
44 lines
1.7 KiB
Plaintext
44 lines
1.7 KiB
Plaintext
# models.dspy — 按能力分类列出可用模型(对齐 llmage v1/models 的分类方式)
|
||
#
|
||
# URL: /pipeline_llm/api/v1/models?catelogid=t2t
|
||
# catelogid 可选:t2t / t2i / t2v / i2v / r2v / i2i / embedding / rerank / tts / asr / i2t / m2t ...
|
||
# (能力类型标准 = 模型治理 appcodes llm_capability,新增走评审禁止野生标签)
|
||
# 不传 = 全部能力
|
||
#
|
||
# 鉴权:Authorization: Bearer *** token>(与 chat/completions 一致)。
|
||
# 机构隔离:只列本机构治理链可用的模型(无策略 = 空列表)。
|
||
|
||
auth = ''
|
||
try:
|
||
auth = request.headers.get('Authorization', '') or ''
|
||
except Exception:
|
||
auth = ''
|
||
if not auth:
|
||
auth = (params_kw or {}).get('api_key', '') or ''
|
||
|
||
if not auth:
|
||
return json.dumps({"error": {"message": "缺少 Authorization Bearer token",
|
||
"type": "invalid_request_error", "code": "missing_token"}},
|
||
ensure_ascii=False)
|
||
|
||
ok, info = await verify_llm_token(auth)
|
||
if not ok:
|
||
return json.dumps({"error": {"message": str(info),
|
||
"type": "invalid_request_error", "code": "invalid_token"}},
|
||
ensure_ascii=False)
|
||
|
||
catelogid = (params_kw or {}).get('catelogid', '') or ''
|
||
rows = await llm_list_models(info.get('org_id', '') or '', catelogid=catelogid)
|
||
|
||
# OpenAI 兼容输出 + 分类字段(catelogid 照 llmage 叫法,值 = 能力类型标准)
|
||
out = {"object": "list", "data": []}
|
||
for r in rows:
|
||
out["data"].append({
|
||
"id": r.get('model_id', '') or r.get('name', ''),
|
||
"object": "model",
|
||
"name": r.get('name', ''),
|
||
"catelogid": r.get('capability', ''),
|
||
"vendor": r.get('vendor', ''),
|
||
})
|
||
return json.dumps(out, ensure_ascii=False)
|