前言¶
在 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-appbundle)。 - 已在 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 实例。
典型用法¶
- 在聊天输入区打开模型选择菜单,确认顶部有
Search models…。 - 快速点名模型:输入 provider 或模型名片段,例如
flash、gpt-4。 - 精筛:需要锚点、或、版本号等形式时,改用
/^deep.*flash/、/pro\|flash/等;观察regex徽章变绿后再选模型。 - 清空搜索框或删除过滤词,可恢复完整分组列表。
插件不修改模型 catalog 数据源,只改变当前菜单里可见项。
适用场景与注意¶
适合:长期在 web profile 下开发或对话、catalog 模型数量多、希望用键盘快速锁定模型的 DSH 用户。
注意:
- 分类为 客户端 插件,仅影响 web 端 composer 的模型菜单 UI;node 侧与其它 profile 不受此搜索框影响。
- DSH 社区插件以 当前 dsh 进程权限 运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的安全与合规要求。
- 插件目录页与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;星标与版本以各页面当时显示为准(目录页当前星标 0)。