前言¶
在 DeepSeek Harness(DSH)里,同一名称的模型常常既可以走 DeepSeek 官方路由,也可以走第三方 pi-ai 适配器路由。会话输入框收起态的模型席默认只显示模型名,例如 DeepSeek V4.1 Flash,看不出当前选中的是官方还是某个供应商。点进完整列表时虽然会按供应商分组,但日常对话里最容易误认的是输入框那一行。
下面介绍社区插件 dsh-model-provider-tag(维护者 kjlamuro,分类:模型推理)。它在不改变官方模型选择交互的前提下,在 Composer 模型名旁加上供应商标签,让「官方」与第三方路由在视觉上区分开。
这是什么¶
dsh-model-provider-tag 是一个 DSH 客户端扩展插件:在输入框模型席和收敛态模型菜单里,于模型名前方(或与官方 model.badge 规则一致的前后位置)渲染小标签,标明该模型当前绑定的 provider 路由。
- 官方路由(
deepseek-official、deepseek-account)显示细描边「官方 / Official」,文字随界面语言; - 其他供应商显示 pi-ai 配置中的
displayName(即provider.name),以主题信息色的浅色胶囊样式呈现; - 已按供应商分组、带分组标题的模型列表页保持官方原样,不重复加标签;
- 服务端下发的
model.badge行为不变:收起态在名称前,菜单内在名称后。
插件仅使用官方扩展点,不修改 DSH 本体;任意步骤失败时 fail-open,回退为官方默认模型名显示。许可证 MIT,当前 Release 版本 0.1.1,要求 DSH ≥ 0.2.2-rc.1(conversation.input.model.label 单槽自 0.2.2 起提供)、Node ≥ 22。插件以当前 DSH 进程权限运行,安装前建议在 GitHub 上核对源码与许可证。
社区目录页:kjlamuro/dsh-model-provider-tag(独立生态站点,与 DeepSeek / 幻方无官方从属关系)。源码与说明:GitHub 仓库。
核心功能¶
显示效果¶
README 中的示例如下(第三方路由名取决于你的 displayName 配置):
收起态 / 输入框模型席: [官方] DeepSeek V4.1 Flash Max
模型菜单(模型行): 模型 [官方] DeepSeek V4.1 Flash ›
第三方路由: [OpenCode Go] DeepSeek V4.1 Flash
实现要点¶
- 宿主侧
lib/index.js为 Cordis 占位,使dsh-client-modules能发现客户端产物; - 客户端
lib/client.js通过ctx.slots.register注册官方槽位conversation.input.model.label,根据{ provider: { id, name }, model, placement, selected }渲染标签; - 点击、焦点、搜索、禁用与无障碍命名仍由官方模型选择控件负责,插件只提供非交互内容。
安装与启用¶
DSH 遵循「一切皆插件」:可在应用内安装,也可用桌面版自带的 dsh CLI。安装后按提示重启或热应用。
应用内(设置 → 插件 → 添加插件)¶
- 填本机插件目录的绝对路径(开发时常用
link:指向本地目录); - 或填
github:kjlamuro/dsh-model-provider-tag(跨设备推荐,需能访问 github.com;github:方式需要本机有git)。
CLI 示例(来自 README)¶
本地 link(路径换成你机器上的绝对路径):
dsh plugin --profile desktop add link:"/Users/kjlamuro/DSH/dsh-model-provider-tag"
GitHub 安装:
dsh plugin --profile desktop add github:kjlamuro/dsh-model-provider-tag
不依赖 git,使用 Release 中的 tgz(版本 v0.1.1):
dsh plugin --profile desktop add \
https://github.com/kjlamuro/dsh-model-provider-tag/releases/download/v0.1.1/dsh-model-provider-tag-0.1.1.tgz
卸载:设置里停用并移除本插件,或执行:
dsh plugin --profile desktop remove dsh-model-provider-tag
换机时勿整包拷贝 ~/.dsh/profiles/desktop(含机器相关的 link: 与 node_modules)。更稳妥做法是迁插件本体(目录或 tgz)以及 cordis.patch.yml 里与供应商相关的配置片段。
典型用法:第三方供应商显示名¶
标签上的第三方名称来自 pi-ai 适配器的 displayName;未配置时回退为路由键(如 opencode-go),胶囊内会显得偏「机器可读」。在 desktop profile 的 cordis.patch.yml 中,可为 llm-pi-ai 补全例如:
- id: llm-pi-ai
name: "@deepseek-ai/dsh-llm-pi-ai"
config:
providers:
opencode-go:
apiKeyEnv: OPENCODE_GO_API_KEY
displayName: OpenCode Go
displayName 同时影响模型菜单的供应商分组标题与「设置 → 模型」页,属全局更名。保存后 profile 热更新即可生效;标签文字跟随 provider.name,供应商改名无需再改插件。对应环境的 API Key(如 OPENCODE_GO_API_KEY)也需在新机器上配置,否则模型路由本身无法调用。
适用场景与注意¶
适合谁: 同时在官方与多个第三方 pi-ai 路由下使用同名模型、且希望在 Composer 一眼区分来源的 DSH 用户。
已知限制(README 已说明):
/model命令弹窗的模型行使用命令弹窗自有渲染 API,不经过conversation.input.model.label,因此不带本标签;输入框模型席与收敛态菜单正常显示。- 收起态按钮的
aria-label/ tooltip 仍只含官方模型名与推理等级;标签主要为视觉增强,读屏仍以官方名称为准。
安装插件即信任其客户端代码在当前 DSH 进程内执行;国内访问 GitHub 可能较慢或被限流,安装时需保证终端或代理能连上 github.com(Release tgz 直连也可,作者在网络环境下直连约 30 秒量级,视网络而定)。
结尾¶
dsh-model-provider-tag 用官方 conversation.input.model.label 扩展点在模型席补上供应商标签,解决「同名模型、多路由」下的来源混淆问题,且失败时不影响默认 UI。需要安装命令、Release 包或 issue 时,以仓库 README 为准:
- 目录页:https://www.skillhub.cn/plugins/kjlamuro/dsh-model-provider-tag
- GitHub:https://github.com/kjlamuro/dsh-model-provider-tag