前言¶
DeepSeek Harness 的 Composer 控件在处理同名模型时存在歧义。当两个提供商提供相同模型(例如 DeepSeek-V4.1-Flash)时,默认的触发器仅显示模型名称,无法区分来源。dsh-provider-model-picker 旨在解决这一模糊性,它在保留原生提供者分组选择器的同时,在控件中显式显示提供者名称。
插件介绍¶
该插件由 icrefin 维护,开源协议为 MIT。它通过注册低优先级的插槽来覆盖默认行为,确保在 Composer 控件中显示 Provider/Model 格式(如 DeepSeek Demo/DeepSeek-V4.1-Flash),而不是仅显示模型名。
核心功能¶
- Provider/Model 显示:重新注册
conversation.input.model(优先级 -1),在触发器中显示提供者名称与模型名,同时提供提供者分组的模型列表。 - 推理等级支持:支持推理等级选择(off, minimal, low, medium, high, xhigh, max)。需在主机配置 YAML 中声明
reasoningEfforts字段。 - UI 与交互:支持键盘导航(
↑/↓移动行,Tab接受/离开,Esc返回),并遵循主机 CSS 变量进行紧凑显示。 - 本地化:包含英语和简体中文的界面文本。
典型用法¶
- 同名模型场景:当
DeepSeek-V4.1-Flash同时存在于 DeepSeek Demo 和 Baidu Team 时,控件会显示DeepSeek Demo/DeepSeek-V4.1-Flash,而非仅显示DeepSeek-V4.1-Flash。 - 配置推理等级:在主机 YAML 中为模型声明
reasoningEfforts字段。例如:
- id: llm-pi-ai
name: "@deepseek-ai/dsh-llm-pi-ai"
config:
providers:
baidu-team:
models:
- id: deepseek-v4.1-flash
name: BD DeepSeek-V4.1-Flash
reasoningEfforts:
low: low
medium: medium
high: high
实现细节¶
- 优先级机制:插件注册优先级为 -1,低于默认值 0。这确保了原生插件保持安装,若组件崩溃则回退到原生触发器。
- 冲突处理:如果另一个插件已持有优先级 -1,注册将被拒绝。
- 注入依赖:使用
inject获取@deepseek-ai/dsh-client-locale等模块,但并不直接触碰remote或remote.session(这些注入主要用于被调用者)。
注意事项¶
- 安装命令未在提供的描述中明确列出。
- 不声明主机路由、服务或配置。
- 仅导出
.条目以携带浏览器客户端入口。 - 以当前 DSH 进程权限运行,安装前应检查源码与许可证。
总结¶
该插件通过低优先级注册解决了模型名称歧义问题,提供了更清晰的 Provider/Model 显示。它不仅修复了视觉上的模糊,还保持了与原生控件的兼容性,适合需要精细管理多提供商模型的场景。
- 目录页: https://www.skillhub.cn/plugins/icrefin/dsh-provider-model-picker
- GitHub: https://github.com/icrefin/dsh-provider-model-picker