dsh-model-picker:按渠道商分组的 DSH 模型选择器

前言

在 DeepSeek Harness(DSH)里接多个 LLM 渠道商时,聊天输入框右下角的模型列表往往是扁平长表:同一 Provider 下的模型散在一屏里,视觉能力、思考强度还要靠记忆或反复点进设置对照。模型一多,切换成本和误选概率都会上去。

下面介绍社区插件 dsh-model-picker(维护者 ZZJQ678):它替换原生选择器,把列表改成「按渠道商(Provider)分组、可折叠」,并尽量从设置与官方目录继承视觉标签、思考强度,而不是另起一套配置。

这是什么

dsh-model-picker 是纯客户端插件:通过 Cordis 补丁注册聊天输入框的模型选择槽位(priority: -1 遮住原生条目),目录与 directory.select() 仍走官方 ctx.modelDirectories,只改视图与交互。

  • 分类:客户端(dsh.client.platform 为 web)
  • 适用范围:README 写明仅在 DSH 桌面版实测通过;桌面版使用的 profile 名为 web。浏览器部署的 Web 版未做测试,不保证可用。
  • 当前版本(package.json):0.4.0,许可证 MIT。

插件以当前 DSH 进程权限运行;安装前建议自行查看 GitHub 仓库 源码与许可证。社区目录页:SkillHub 插件页(独立站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

分组与折叠

  • 模型按渠道商分组,组头显示该组模型数量。
  • 可折叠:默认只展开当前模型所在组,其余折叠;点击组头切换。
  • 搜索:匹配渠道商名称/ID 或模型名称/ID;搜索时自动展开命中分组。

合并 modlens 视觉桥镜像

@liustack/modlens 等视觉桥会为上游渠道商注册镜像 provider(id 形如 modlens-<上游id>,名称带 (modlens vision) 后缀)。插件把镜像折叠回上游渠道商,同名模型只列一条,避免同一 Provider 出现两遍;卸载 modlens 后镜像自然消失,无需改本插件。

「视觉」与「视觉桥」标签

两者互斥,完全继承设置,不额外配置:

标签 含义
视觉 该模型在设置里声明了视觉(input 含 image),原生可读图
视觉桥 模型自身未勾视觉,但 modlens 为其套桥,可经桥读图

官方 session/modelCatalog 不含视觉字段,插件通过 settingsScope.describe() 读设置镜像;读不到声明时不显示标签(不猜测)。服务端动态发现型渠道商(如 CodeBuddy 等)设置里无 providers 声明时,两个标签都不显示。

思考强度逐模型继承

面板顶部显示当前模型支持的强度选项(来自设置 → dsh-llm-pi-ai → 目录的 reasoning.efforts 链路)。切换模型时带上该模型的 defaultEffort,与原生 selectionOf 行为一致。仅 off 一个级别的模型不显示强度控件;未声明 reasoningEfforts 的模型也不显示控件。

失败可见

渠道商目录加载失败时显示原因,并提供重试。取不到目录时会抛异常,由槽位错误边界按 abdicate 退役本条目,原生选择器自动接管,避免死壳界面。

安装与启用

从 GitHub 安装(公开仓库):

dsh plugin --profile web add "github:ZZJQ678/dsh-model-picker"

本地开发可 link 到桌面版实际使用的 profile:

dsh plugin --profile web add "link:E:\DSH\dsh-model-picker"

装完后重启 DSH Desktop(或应用内「重启 Harness」)。bundle 列表在启动时固化,仅刷新页面不足以加载新 bundle。

桌面版的 profile 名是 web,不是 desktop。误用 desktop 会装到用不上的 profile,表现常为「装成功但界面无变化」。桌面版目录示例:%APPDATA%\dsh-desktop\harness\profiles\web。

卸载:

dsh plugin --profile web remove dsh-model-picker

卸载后原生模型选择器会自动恢复。

典型用法

安装并重启后,无需单独配置文件:打开任意会话,点击输入框右下角模型入口(或与 /model 命令共用的同一槽位),即可看到按渠道商分组的面板。

  1. 在组内点选模型,切换会话当前模型;若该模型在设置里配置了思考强度,顶部会出现对应级别,切换模型时会应用其默认强度。
  2. 在面板搜索框输入渠道商或模型名称/ID,命中分组会自动展开。
  3. 若已安装 modlens,同一上游下的桥接模型会与原生条目合并,并按需显示「视觉桥」;在设置里勾了视觉的模型显示「视觉」。

插件不修改 Provider 插件或 settings.yaml;视觉与强度仍以你在 DSH 设置中的声明为准。

适用场景与注意

适合谁

  • 配置了多个 LLM 渠道商、模型数量较多,希望按 Provider 浏览而不是扫扁平列表的 DSH 桌面版用户。
  • 同时使用 modlens 视觉桥,希望列表不重复、又能区分「原生视觉」与「桥接视觉」的场景。
  • 已在设置里为不同模型配置了 reasoningEfforts,希望在选模型时一并看到并切换强度。

务必注意

  • 环境:仅桌面版 + profile web 有 README 级别的实测说明;Web 版未测试。
  • 依赖服务:插件 inject 需与官方模型选择 UI 对齐(含 remote、remote.session 等);缺少依赖时槽位会静默退役并由原生接管,控制台可能出现 inject 相关错误。
  • 权限与安全:插件代码在客户端 bundle 中执行,安装前请审查 GitHub 源码。
  • UI 基座:优先使用 @deepseek-ai/dsh-client-ui-primitives;若基座不可用会退化为无图标的纯 DOM,核心选择功能仍可用。

结尾

dsh-model-picker 在不动官方目录与选择逻辑的前提下,把模型选择器改成按渠道商分组、可搜索、可折叠的视图,并从设置继承视觉与思考强度标签——适合模型多、Provider 杂的 DSH 桌面版日常切换。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye