Repository navigation
Releases
Releases · xiaokaizhou/dsh-llm-multimodal
v0.5.0 — 分层模型能力解析
首个打 tag 的版本。相对 0.3.0,核心变化是模型能力不再靠名字猜:改为分层证据解析,判定结果可见、可纠正、可探测。
亮点
| 之前 | 现在 |
|---|---|
| 每个模型只有一个类型标签 | 多标签:text + vision 可共存 |
名称子串匹配(h3 / wan / sd- 误伤) |
词元边界正则 + 模型族规则 |
视觉候选池 0、nano-banana 被判成文本 |
vision 池 32、图像模型正确归类 |
| 显式模型不存在时静默换成别的模型 | 直接报错并列出候选 |
| 不能纠正判定 | 设置卡片里就地勾选,写入覆盖文件 |
新增
- 分层能力解析引擎
lib/capabilities.js,证据优先级:人工覆盖1.00> provider 声明0.90> 自定义规则0.85> 规则/家族0.85 / 0.60> 在线元数据0.80> 兜底纯文本0.30。 - 模型能力矩阵:设置卡片按 provider 分组显示每个模型的模态 chip、置信度与证据来源,可勾选纠正 / 清除覆盖 / 逐 provider 重新探测。
- 在线探测
POST /api/llm-multimodal/detect:拉取GET {baseURL}/models的元数据并合并,失败只降级不阻塞。 - 新接口:
GET /api/llm-multimodal/capabilities、POST /api/llm-multimodal/capabilities/override。 - 真实目录校验器
npm run verify:capabilities(scripts/verify-capabilities.mjs)。 - 文档
docs/capability-resolution.md,README 中英双语补充该章节。
修复
gemini-nano-banana-2.1/gemini-3-pro-image/flux.2-klein-4b等图像模型被误判为文本。minimax/h3等含h3的对话模型被误判为视频。- 视觉通道因候选池为空而完全不可用。
- 混合网关把
claude-*/gemini-*挂在原生端点导致自动挑选失败(现自动后置并解释原因)。 - 空池时设置里的
defaultModel无法兜底(新增modelFromOverride)。 - 模型下拉「选中后仍显示请选择」(本地草稿 + 重试 + 直写回落)。
- 能力矩阵与选择器在注入样式未生效时排版塌陷(结构样式内联化)。
不兼容变更
- 模型行的
type现为primary,并新增modalities/primary/confidence/sources。 pickModel()未命中返回{ model: null, requestedButMissing: true },不再静默回退。
验证
vitest:7 文件 159 例通过。npm run verify:capabilities:真实配置 75 个模型、21 条期望 pass 21 / fail 0。- 运行中宿主实测池子:
text 63 / image 8 / video 4 / vision 32 / tts 0 / music 0;generate_vision自动选到saygm:gpt-5.4并正确识别红色测试图。
已知限制
- 语音 / 音乐池为空是配置事实:默认
llm-pi-ai未列任何 TTS / 音乐模型。补上 id(含speech/tts/voice,或music/song/lyric)并给该 provider 配baseURL即可出现。 - 设置页 UI 尚未经受真实浏览器视觉验收(宿主 GUI 需鉴权 token)。
完整变更:CHANGELOG.md