在模型选择菜单里输入关键词或正则,实时筛选服务商与模型
29.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add EiffelBS/dsh-plugin-model-filter该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · search
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-ui-model-selection@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 模型菜单关键词筛选
- 正则匹配服务商与模型
- 实时过滤模型列表
一个 DSH 插件,在 DSH 聊天输入框的模型选择菜单里加上搜索 / 过滤框。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-model-filter
DSH 插件,给 DSH 聊天输入区的模型选择菜单加上搜索 / 过滤框。目录里服务商和模型一多,默认菜单就是一长串分组列表;装上这个插件,直接打字就能实时过滤(Search models…),选择交互的其他部分完全不动。
可搜索的模型菜单
兼容性: 0.3.2 版已针对 DSH 0.1.7-rc.2 验证,并保留 DSH 0.1.5-rc.2 的图标与选择结果契约。诊断过程与隔离验证步骤见 DSH 0.1.7-rc.2 兼容性。
搜索语法
过滤框支持两种模式:纯文本和正则表达式。
纯文本
不区分大小写的子串匹配,和以前完全一样(例如 deepseek v4)。只要文本里带斜杠(比如模型 id deepseek-official/deepseek-v4),仍然按纯文本搜索。
正则
把模式用斜杠包起来就切到正则表达式:/pattern/,后面可以跟标志位:/pattern/i。模式会去匹配模型名称、模型 id、服务商名称、服务商 id;模式非法(例如 /[/)会显示一行简短的「Invalid pattern」提示,而不是悄悄什么都匹配不到。
输入一以 / 开头,输入框右端就会出现一个小小的 regex 徽标:模式还没写完时是灰色,成为合法正则后变绿色,编译失败则变红。
展开完整文档(README 剩余 1 节)
dsh-plugin-model-filter
DSH 插件,给 DSH 聊天输入区的模型选择菜单加上搜索 / 过滤框。目录里服务商和模型一多,默认菜单就是一长串分组列表;装上这个插件,直接打字就能实时过滤(Search models…),选择交互的其他部分完全不动。
可搜索的模型菜单
兼容性: 0.3.2 版已针对 DSH 0.1.7-rc.2 验证,并保留 DSH 0.1.5-rc.2 的图标与选择结果契约。诊断过程与隔离验证步骤见 DSH 0.1.7-rc.2 兼容性。
搜索语法
过滤框支持两种模式:纯文本和正则表达式。
纯文本
不区分大小写的子串匹配,和以前完全一样(例如 deepseek v4)。只要文本里带斜杠(比如模型 id deepseek-official/deepseek-v4),仍然按纯文本搜索。
正则
把模式用斜杠包起来就切到正则表达式:/pattern/,后面可以跟标志位:/pattern/i。模式会去匹配模型名称、模型 id、服务商名称、服务商 id;模式非法(例如 /[/)会显示一行简短的「Invalid pattern」提示,而不是悄悄什么都匹配不到。
输入一以 / 开头,输入框右端就会出现一个小小的 regex 徽标:模式还没写完时是灰色,成为合法正则后变绿色,编译失败则变红。
正则过滤 /^deep.flash/ 与绿色有效性徽标
标志位 i、m、s、u 生效;g/y 会被忽略,让匹配器保持无状态。
示例(配一份常见目录):
| 过滤条件 | 匹配结果 |
| /^gpt/i | 名称以 "gpt" 开头的模型,不区分大小写(GPT-4o、GPT-4o mini、GPT-4 Turbo) |
| /pro\|flash/ | 名称含 "pro" 或 "flash" 的模型(deepseek-v4-pro、deepseek-v4-flash) |
| /(v4\|turbo)/ | 任意位置出现 "v4" 或 "turbo"(deepseek-v4-pro、deepseek-v4-flash、GPT-4 Turbo) |
| /mini$/ | 以 "mini" 结尾的模型(GPT-4o mini) |
| /\d+$/ | 以数字结尾的模型(deepseek-r1) |
| /\d\.\d/ | 形如 "x.y" 的版本号(Claude 3.5 Sonnet 匹配 3.5) |
| /^claude/i | 整个 Anthropic 服务商分组(模式也会测试服务商名称 / id) |
| /\bro\b/ | 作为完整单词的 "ro"(几乎匹配不到——"pro" 里 "ro" 前面没有单词边界) |
正则基础:^/$ 锚定开头 / 结尾,| 表示「或」,\d/\w 是字符类,\. 转义字面量点号,\b 是单词边界,(...) 用来分组多个选项。模式里要写字面量 /,必须转义成 \/。
它是早先那个 profile 本地、靠同名遮蔽的 fork(@deepseek-ai/dsh-client-ui-model-selection 的 vendored 副本)的正名可分发后继者。这个插件不去遮蔽官方包名,而是一个真正的第三方 bundle,名为 dsh-plugin-model-filter,它:
1. 与自带的 ui-model-selection 行共存(它不会被禁用),并且
2. 插入自己的客户端行,占用公开的 conversation.input.model 槽位,提供带搜索的选择器。
由于自带行保持启用,自带包仍是 modelDirectories 服务的唯一事实来源(由 @nanmicoder/dsh-agent-teams 使用)、/model 弹窗命令,以及 model 语言命名空间。因此禁用或移除这个插件是安全的:自带选择器会收回座位,启动过程永远不会丢失服务商。
工作原理
web 配置档从 loader 行组合出浏览器模块图。插件包如果在 package.json 里声明了 dsh.bundle.patch,通过 dsh plugin 安装后就会成为一个配置档层:
// package.json
{
"name": "dsh-plugin-model-filter",
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" },
"client": { "platform": "web", "inject": [ / provider packages / ] }
}
}
cordis.patch.yml 作为补丁应用到组合后的 web 配置档上,顺序遵循 dsh.profile.bundles(在 dsh-web-app 之后),并且只做一处修改:
- insert: # our own client row at the root
- id: ui-model-filter
name: 'dsh-plugin-model-filter'
dsh-client-modules 的 node 部分扫描插入的行,按名称解析包,提供 exports["./client"](lib/client.js),然后浏览器在槽位上注册带搜索的 ModelSelect。
槽位归属
conversation.input.model 是 kind: "single"、会话作用域的槽位。自带的 ui-model-selection 行和这个 bundle 的行都会注册座位,但原生槽位注册表渲染的是优先级最低的条目(它自己的错误提示写着:"register at a different priority to shadow it (lowest renders)")。自带行注册的优先级是默认值 0;这个 bundle 注册的优先级是 priority: -1,所以可搜索的选择器会渲染,而自带行保持存活。禁用或移除这个 bundle 时,自带选择器(无搜索)会自动接管。
渲染职责 vs. 归属职责
| 关注点 | 归属 |
| modelDirectories 服务(directoryFor) | 自带 ui-model-selection |
| /model 弹窗命令 | 自带 ui-model-selection |
| model 语言命名空间字典 | 自带 ui-model-selection |
| conversation.input.model 座位渲染(带搜索) | 这个 bundle |
| 仅搜索用的字典键(menu.filterPlaceholder、menu.clear、empty.noMatch) | 这个 bundle,渲染时回退(自带字典没有定义它们) |
环境要求
- DSH,带 web 配置档(@deepseek-ai/dsh-web-app bundle)。
- 已在 DSH 0.1.7-rc.2 上验证;兼容适配器也支持 0.1.5-rc.2 的浏览器原语名称和模型选择结果契约。
- PATH 上有 pnpm(dsh plugin 会用到)。
- React / @deepseek-ai/cordis 对等依赖(由 web bundle 提供)。
- 只有在运行仓库兼容性测试时才需要 Node.js 和 npm。
安装
从本地检出安装(无需 registry):
dsh plugin --profile web add link:/path/to/dsh-plugin-model-filter
从 git URL 安装:
dsh plugin --profile web add git+https://github.com/EiffelBS/dsh-plugin-model-filter.git
dsh plugin 会在 profile 目录里运行 pnpm add,然后协调 dsh.profile.bundles:因为这个包声明了 dsh.bundle.patch,所以它会自动追加为一个 profile 层。安装、更新、禁用或重新启用之后,重启目标 web 实例,然后打开一个全新的浏览器会话。只刷新页面不能代替重启 bundle 组合。
验证安装:
dsh web --profile web --no-open # then check the model menu includes the search box
兼容性测试
受跟踪的 gate 使用精确的 DSH 0.1.7-rc.2 客户端契约,同时保留旧的浏览器 API 表面:
Example with npm; pnpm works as well.
npm install --no-package-lock
npm test
仓库不提交包管理器 lockfile;精确的 DSH 0.1.7-rc.2 版本固定在 devDependencies 里。测试验证:补丁恰好是一行插入,stock 形状和插件 slot 注册在优先级 0 和 -1 下共存,disposal/remount 只移除插件条目,现代和 legacy 两种 primitive 形状的模块表面都能渲染,搜索保留 provider/model 身份,legacy void 和 rc2 RemoteResult 两种选择结果都能处理。目标包声明只是 dev-only 固定项;它们不是已发布插件的运行时依赖。
更新
更新前先停止目标 web 实例。包管理器协调可能会替换 node_modules 的部分内容,而在 Windows 上,运行中的服务器可能持有原生包不放。
拉取此仓库的较新修订(或已发布版本)之后:
dsh plugin --profile web update dsh-plugin-model-filter
然后再次启动 web 实例,并使用全新的浏览器会话。
卸载 / 禁用
dsh plugin --profile web remove dsh-plugin-model-filter
协调会从 dsh.profile.bundles 中移除该 bundle;stock 的 ui-model-selection 行从未被禁用,所以模型选择器和 modelDirectories 服务会在下次启动时原样恢复。
因为这个插件从不禁用 stock 行,所以在 profile 层面对 bundle 行做 disable* 也是安全的:modelDirectories 仍由 stock 行提供,因此该服务的消费者会保留其原生 provider。只是不要在移除本插件之外,再去禁用 stock 的 ui-model-selection 行;那种组合会让该服务失去 provider。
布局
package.json name dsh-plugin-model-filter, dsh.bundle.patch, dsh.client
cordis.patch.yml inserts the client row (stock row left active)
lib/index.js host half (empty apply - pure UI plugin)
lib/client.js 浏览器端:搜索过滤,插槽上的 ModelSelect test/compatibility.test.mjs DSH rc2 契约与行为门禁 docs/dsh-0.1.7-rc2.md 兼容性诊断与验证记录
底层机制
- 选择器占用公开插槽 conversation.input.model(kind: "single",会话作用域)。本 bundle 以 priority: -1 注册它,而内置行保持 0,注册表渲染优先级最低的条目——于是可搜索的选择器在单插槽选举中胜出,同时内置包继续提供服务、命令和字典键。
- 移除本 bundle 不会让 modelDirectories 断供:服务商是内置行,不是本 bundle。DSH 0.1.5 时期对第一代设计的审计发现,当内置服务商被禁用时,@nanmicoder/dsh-agent-teams 会一直等待该服务。这是所有权拆分的历史动机,并非对每个 DSH 0.1.7 使用方的断言。
- DSH 0.1.5 用 void 完成一次成功的模型选择;DSH 0.1.7-rc.2 返回 RemoteResult<void>。注入的接口对两种契约都做归一化,因此解析出的 { ok: false } 会作为失败上报,而不会被误认为成功。
限制
- 需要内置的 ui-model-selection 行保持启用(其默认状态)。本插件刻意不提供 modelDirectories 服务,因此无法完全取代内置行。
- 搜索在客户端对已加载的目录进行;目录本身仍来自 Host 生成快照。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
EiffelBS/dsh-plugin-model-filter
在模型选择菜单里输入关键词或正则,实时筛选服务商与模型
相关插件 · 搜索 / 抓取
LLM 知识平台Tencent/WeKnora
概览 ·快速开始 ·新特性 ·功能 ·客户端 ·文档 ·开发
★ 36,161已汉化DSH
72.1
智能体记忆系统MemTensor/MemOS
MemOS 2.0 Stardust星尘
★ 12,195已汉化DSH
71.2
跨代理记忆库zilliztech/memsearch
跨平台语义记忆,专为 AI 编程智能体打造。
★ 2,799已汉化DSH
70.9
技能语料库EverMind-AI/SkillCorpus
SkillCorpus 能给你什么
★ 694已汉化DSH
69.7
代码图谱记忆syncable-dev/memtrace-public
你的智能体值得拥有结构化记忆。
★ 509已汉化MCP
67.9
AnySearch 搜索插件anysearch-team/anysearch-dsh
AnySearch 网页搜索服务商,为 DeepSeek Harness(DSH)提供高级搜索工具
★ 457已汉化DSH
66.6