dsh-model-pin:给 DSH 模型选择菜单加图钉置顶与供应商前缀

前言

订阅的模型多了之后,DSH 对话输入框里的「选择模型」菜单会变得很长:常用模型被埋在列表深处,不同供应商的同名模型混在一起,选一次要翻很久。dsh-model-pin 就是针对这个菜单的小插件,思路很直接:把常用的模型置顶到菜单最上方,再给不同供应商的模型加上显示前缀,让同名模型一眼可辨。

下面介绍这个插件的定位、功能、安装方式和注意事项。

这是什么

dsh-model-pin 是 DeepSeek Harness(DSH)的浏览器侧插件,由 GreyYao 维护,仓库地址为 https://github.com/GreyYao/dsh-model-pin ,社区目录页为 https://www.skillhub.cn/plugins/GreyYao/dsh-model-pin 。

它不改 DSH 源码,纯在浏览器侧扩展模型选择菜单,做三件事:图钉置顶常用模型、在「已固定」框里拖拽排序、按供应商加显示前缀。仓库 README 里还有第四项行为改进:选中的模型若已置顶,打开菜单时会停在「已固定」框。

核心功能

1. 模型置顶

鼠标移到某个模型行,行尾会出现图钉图标;点图钉即把该模型置顶,它会出现在菜单最上方的「已固定」框里,图钉变为实心。再点一次图钉(在原位置或在「已固定」框里均可)即可取消置顶。点「已固定」里的模型名等同于点原模型,会选择并关闭菜单。

几个细节:

  • 置顶记录保存在本机浏览器存储里,重启 DSH 后仍在。
  • 只对对话输入框的模型选择菜单生效。
  • 搜索过滤时,「已固定」框只显示仍然匹配的模型。
  • 已固定的模型在原分组里仍保留一份,键盘上下导航不受影响。

2. 拖拽排序

在「已固定」框里,按住行首的 ⠿ 手柄即可拖动排序:拖到目标行的上半部分排到它前面,下半部分排到它后面,拖动时有插入线提示,顺序同样会被保存。

只有手柄能拖动。按在模型名上仍是正常选择,不会误触发拖拽——DSH 菜单会在按钮的 mousedown 里取消默认行为,浏览器原生拖拽起不来,所以插件用 pointer 事件自实现了拖拽。

3. 供应商显示前缀

在「设置 → 模型」里,供应商「显示名称」输入框下方多出一个「显示前缀」输入框。填入内容后,该供应商下所有模型在对话中的显示名变成「前缀 + 空格 + 原名」,例如 [官] DeepSeek-V4.1-Flash。

行为说明:

  • 显示前缀会出现在三处:模型选择菜单、「已固定」框、输入框旁的当前模型名。设置页保持原样。
  • 只改显示,不改模型 ID,不影响调用。
  • 输入即保存,清空即恢复;通过「添加自定义模型 API」添加时按填写的 Provider ID 记录。
  • 没有「显示名称」的内置供应商,前缀输入框出现在其「自定义」折叠区最上面。
  • 限制:菜单自带的搜索只匹配原模型名,搜不到前缀。

4. 滚动行为

当前选中的模型已置顶时,打开菜单(或列表刷新)会停在顶部的「已固定」框,而不是被拉到下面的原分组。鼠标悬停、方向键导航、或用户已手动滚动菜单之后,插件不再干预。选中的模型未置顶时,完全保持 DSH 原样。

安装与启用

这个插件没有一条泛用的 CLI 安装命令。它按 DSH profile 的依赖方式接入,profile 目录通常是 ~/.dsh/profiles/<profile>/(Windows 下为 C:\Users\<你>\.dsh\profiles\<profile>\)。具体步骤来自 README:

  1. 克隆或下载仓库到本机任意位置。
# 仓库地址
https://github.com/GreyYao/dsh-model-pin
  1. 修改 profile 的 package.json。操作前先备份该文件,然后在 dependencies 里加一行指向本仓库的绝对路径,并在 dsh.profile.bundles 数组里加上插件名:
{
  "dependencies": {
    "dsh-model-pin": "link:/absolute/path/to/dsh-model-pin"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-model-pin"]
    }
  }
}
  1. 在 profile 目录执行一次依赖安装,或手动把 node_modules/dsh-model-pin 链接到本仓库目录:
cd ~/.dsh/profiles/<profile>
npm install
  1. 重启 DSH,或刷新页面。

卸载时删掉 package.json 中上面两处条目和 node_modules/dsh-model-pin 链接即可。已保存的置顶与前缀数据只存在浏览器本地,卸载不影响其他功能。

典型用法

装好后无需额外配置,直接在对话输入框打开模型菜单即可看到效果。日常调优按下面顺序做:

  1. 打开模型菜单,把最常用的两三个模型点上图钉置顶。
  2. 若顺序不合适,按住「已固定」框里某行的行首手柄拖到目标位置。
  3. 在「设置 → 模型」中给容易混淆的供应商填显示前缀,例如给官方渠道填 [官]。
  4. 回到对话,在菜单顶部的「已固定」框里确认前缀与顺序。

配置项本身不涉及模型 ID 或 API 密钥,前缀只是显示层的装饰,填错可以随时清空。

适用场景与注意

适合模型列表较长、且同一模型名在不同供应商下重复出现的场景;也适合对可选模型有固定偏好、希望常用项常驻顶部的开发者。

几点需要注意:

  • 插件以当前 DSH 进程的权限运行,安装前应检查仓库源码与许可证(仓库声明为 MIT)。
  • 插件按 DSH 当前版本的模型选择菜单结构工作。菜单结构取自 @deepseek-ai/dsh-client-ui-model-selection:div[role=menu][id$="-models"] > section[data-menu-group] > button[role=menuitemradio],模型由 span[data-provider-id][data-model-id] 标识。DSH 升级若调整菜单结构,图钉或「已固定」框可能失效,此时需要关注插件更新或向仓库提 issue。
  • 搜索无法匹配显示前缀,这是已知限制。
  • 本插件是纯浏览器侧的社区项目;DSH 生态的社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要把它当作官方应用商店里的条目。

小结

dsh-model-pin 把「常用模型置顶」和「供应商前缀」这两件事落在模型选择菜单上,配置简单,卸载干净,适合觉得模型列表太长、同名模型难分辨的 DSH 开发者。

  • 社区目录页:https://www.skillhub.cn/plugins/GreyYao/dsh-model-pin
  • GitHub:https://github.com/GreyYao/dsh-model-pin
羽毛球分组比赛记分
小程序二维码

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

小夜