dsh-plugin-model-whitelist:在设置里勾选,精简模型选择器菜单

前言

在 DeepSeek Harness(dsh)里接多个 provider 之后,输入框旁的模型选择器往往会拉得很长:不同来源的模型、地区受限或常年用不到的条目混在一起,每次切换都要在长列表里翻。

官方并没有「只显示我常用的几个」这类偏好开关。社区插件 dsh-plugin-model-whitelist(维护者 swyc520)做的是另一件事:在「设置 → 模型」底部增加「模型显示」面板,按模型逐个勾选是否在选择器菜单里出现;未勾选的从菜单里隐藏,但不改动 provider 配置与调用链路。

下面介绍它的定位、安装方式、日常用法,以及实现上为何选择「投影」而不是替换官方选择器。

这是什么

dsh-plugin-model-whitelist 是 dsh 的客户端(web)插件,npm 包名 @swyc520/dsh-plugin-model-whitelist,当前版本 0.2.0,许可证 MIT。

一句话:给模型选择器加一道白名单——在设置页勾选要显示的模型,没勾的从输入框模型菜单里消失。

它不是用来禁用或卸载模型的。隐藏只影响选择器菜单的展示;模型定义、provider 设置与请求路径不变。空白名单时行为与未装插件一致,默认不隐藏任何模型。

核心功能

设置页「模型显示」面板

插件在 设置 → 模型 页面底部注册 settings.models.footer 座位,提供「模型显示」面板:

  1. 按 provider 分卡片列出当前读到的模型,可逐个取消勾选以隐藏。
  2. 顶部显示 显示 N/M(可见数 / 总数)。
  3. 五个操作:全部显示、全部隐藏、全部展开、全部折叠、重新读取。

勾选变更立即生效,无需刷新页面。隐藏的模型仍出现在设置列表里,勾回即可恢复。

折叠与隐藏是两回事

点 provider 卡片标题行可折叠 / 展开该组;箭头与标题右侧计数(有隐藏时会体现已隐藏数量)会更新。折叠状态会写入本地存储,刷新后保持。

折叠仅方便在设置页阅读,不会改变选择器里哪些模型可见。provider 多时可点「全部折叠」先收起来。

选择器侧:过滤列表,不替换官方 UI

插件不接管 conversation.input.model(该座位标注为 shadows-shipped-ui,替换会连带官方菜单、推理等级、键盘与失败提示)。它包装 ctx.modelDirectories.catalog.store 的 getSnapshot,对快照做只读投影,让官方组件仍渲染自己的界面,只是读到的 groups 里少了被隐藏的模型。

因此 README 写明:模型菜单、推理等级、键盘操作、失败提示保持官方原样。

持久化与默认值

白名单保存在浏览器本地存储,键名 dsh-model-whitelist/v1,按浏览器与 Web 地址隔离;不写入 settings.yaml,也不上传。清除站点数据会清掉白名单。

插件选择持久化「隐藏集」而非「显示集」,以便新版本或新接入的模型默认仍可见,避免新条目被静默藏掉。

安装与启用

命令行(纯 dsh web)

在资料给出的安装步骤中,使用下列命令(注意 --profile web):

dsh plugin --profile web add @swyc520/dsh-plugin-model-whitelist
dsh --profile web --dump-config   # 确认插件行已进入配置树

安装后重启一次 dsh web。

桌面端 / DSHEAC AIO

桌面端 profile 由 Electron 应用独占,命令行 dsh plugin add 无法写入配置。应在应用内插件管理器安装;若手工安装,桌面端 profile 不允许 link: 依赖或目录 junction,须为真实目录。

插件以当前 dsh 进程与前端环境运行;安装前可在 GitHub 查看源码与 MIT 许可证。

典型用法

  1. 完成安装并重启 dsh web(或桌面端等价流程)。
  2. 打开 设置 → 模型,滚到页面底部找到「模型显示」。
  3. 取消勾选不需要在菜单里出现的模型;需要时用「全部显示」或单条勾回恢复。

若面板提示「还没有读到模型清单」,先打开一次模型选择器——模型目录由官方模型选择插件按需加载,本插件读取同一份数据。

已选中的模型即被隐藏,当前会话仍可继续使用;隐藏只影响菜单是否列出该项。

适用场景与注意

适合:长期固定用少数几个模型、希望缩短选择器列表、又不想动 provider 配置的 dsh 用户。

工作原理上的边界(来自 README「已知限制」):

  • 白名单只影响选择器菜单显示,不中断正在使用的模型。
  • 懒加载的 provider 模型需先触发目录加载(例如打开一次选择器)才会出现在面板。
  • 换端口、换浏览器或清空站点数据会丢失白名单与折叠状态。
  • 没有「按 provider 整组隐藏」的专用按钮;「全部隐藏」作用于面板内已读到的条目。折叠不能替代隐藏。

兼容性:README 记载在 dsh 0.2.0-rc.2(桌面端 @deepseek-ai/dsh-desktop 0.2.0-rc.2)上实测通过;依赖 ctx.modelDirectories.catalog.store 快照形状与 settings.models.footer 座位。若未来版本变更这些公开面,插件可能退化为面板为空或不过滤,设计上尽量避免拖垮启动(激活失败路径有降级)。未在 0.1.x 系列验证。

社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是其中的客户端可见性偏好工具。

结尾

模型变多后,用设置页勾选收拢菜单,比在长列表里反复翻找更省事。dsh-plugin-model-whitelist 用本地白名单与快照投影实现这一点,且不替换官方选择器 UI。

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

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

Xiaoye