dsh-model-provider-tag:在 Composer 模型席标明路由供应商

前言

在 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

实现要点

  1. 宿主侧 lib/index.js 为 Cordis 占位,使 dsh-client-modules 能发现客户端产物;
  2. 客户端 lib/client.js 通过 ctx.slots.register 注册官方槽位 conversation.input.model.label,根据 { provider: { id, name }, model, placement, selected } 渲染标签;
  3. 点击、焦点、搜索、禁用与无障碍命名仍由官方模型选择控件负责,插件只提供非交互内容。

安装与启用

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye