dsh-plugin-model-filter:为 DSH 聊天输入框模型菜单增加搜索与过滤

前言

在 DeepSeek Harness(DSH)里接多个 provider、模型目录变长之后,聊天输入区自带的模型选择菜单往往是按分组展开的长列表。逐层点开找某个 id 或别名,会打断写 prompt 的节奏。社区插件 dsh-plugin-model-filter(维护者 EiffelBS)在 web 客户端 的模型选择 UI 上增加 Search models… 搜索框,输入即可即时过滤列表,其余选择交互仍走 DSH 原有流程。

这是什么

dsh-plugin-model-filter 是面向 DSH web profile 的第三方客户端插件(当前 package 版本 0.3.2,许可证 MIT)。它在 DSH chat composer 的模型选择菜单里加入搜索/过滤框;catalog 里 provider 和 model 很多时,不必在长分组列表里手动翻找。

与早期在 profile 内通过包名 shadowing 拷贝 UI 的做法不同,该插件以独立 bundle 名 dsh-plugin-model-filter 安装:与官方 ui-model-selection 行共存,并通过 slot 优先级让带搜索的选择器实际渲染,同时保留官方行对 modelDirectories、/model 命令和 model 文案命名空间的职责。卸载或禁用后,官方无搜索的选择器会自动接管同一 seat,boot 不会丢失服务提供方。

核心功能

搜索框与过滤范围

菜单顶部出现占位符为 Search models… 的输入框。过滤作用于 模型名、模型 id、provider 名、provider id(正则模式下四类字段均参与匹配)。

纯文本模式

默认 大小写不敏感 的子串匹配,例如输入 deepseek v4 即可缩小列表。模型 id 里带斜杠(如 deepseek-official/deepseek-v4)仍按纯文本处理,不会误切成正则。

正则模式

用斜杠包裹模式即切换为正则:/pattern/,可选 flags,例如 /pattern/i。

  • 输入以 / 开头时,字段右侧会出现 regex 徽章:模式未完成时为灰色,编译成功为 绿色,无效模式为红色并提示 Invalid pattern(不会静默匹配为空)。
  • 支持 flags i、m、s、u;g / y 被忽略,以保持匹配无状态。

README 中给出的典型示例(catalog 因环境而异,仅作语法参考):

过滤输入 匹配含义(示例)
/^gpt/i 名称以 gpt 开头(任意大小写)
/pro\|flash/ 名称含 pro 或 flash
/(v4\|turbo)/ 任意位置含 v4 或 turbo
/mini$/ 名称以 mini 结尾
/^claude/i 匹配 Anthropic 整组(亦测 provider 名/id)

模式内的字面 / 需写成 \/。

与官方 UI 的分工

职责 负责方
modelDirectories(directoryFor) 官方 ui-model-selection
/model 弹层命令 官方 ui-model-selection
model locale 官方 ui-model-selection
conversation.input.model 渲染(含搜索) 本插件
搜索相关文案(如 menu.filterPlaceholder) 本插件(缺省时组件内 fallback)

环境要求

  • 使用带 web profile 的 DSH(@deepseek-ai/dsh-web-app bundle)。
  • 已在 DSH 0.1.7-rc.2 上验证;兼容适配仍保留 0.1.5-rc.2 的浏览器 primitive 名与模型选择结果契约(详见仓库 docs/dsh-0.1.7-rc2.md)。
  • 执行 dsh plugin 时系统 PATH 上需有 pnpm。
  • React / @deepseek-ai/cordis 由 web bundle 提供 peer 依赖。

安装与启用

安装后需 重启目标 web 实例,并 新开浏览器会话 验证;仅刷新页面不能替代 bundle 重组。

从 git URL 安装:

dsh plugin --profile web add git+https://github.com/EiffelBS/dsh-plugin-model-filter.git

从本地目录 link(无需 registry):

dsh plugin --profile web add link:/path/to/dsh-plugin-model-filter

验证是否生效:先启动 web 且不自动打开浏览器,再检查模型菜单是否出现搜索框:

dsh web --profile web --no-open

更新插件前建议先停止 web 实例,再在 profile 目录执行:

dsh plugin --profile web update dsh-plugin-model-filter

然后重新启动 web 实例。

典型用法

  1. 在聊天输入区打开模型选择菜单,确认顶部有 Search models…。
  2. 快速点名模型:输入 provider 或模型名片段,例如 flash、gpt-4。
  3. 精筛:需要锚点、或、版本号等形式时,改用 /^deep.*flash/、/pro\|flash/ 等;观察 regex 徽章变绿后再选模型。
  4. 清空搜索框或删除过滤词,可恢复完整分组列表。

插件不修改模型 catalog 数据源,只改变当前菜单里可见项。

适用场景与注意

适合:长期在 web profile 下开发或对话、catalog 模型数量多、希望用键盘快速锁定模型的 DSH 用户。

注意:

  • 分类为 客户端 插件,仅影响 web 端 composer 的模型菜单 UI;node 侧与其它 profile 不受此搜索框影响。
  • DSH 社区插件以 当前 dsh 进程权限 运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的安全与合规要求。
  • 插件目录页与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;星标与版本以各页面当时显示为准(目录页当前星标 0)。

链接

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

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

Xiaoye