前言¶
在 DeepSeek Harness (DSH) 的「设置 → 模型」中,通过「获取可用模型」加载候选列表时,如果列表较长,手动查找特定模型 ID 会比较繁琐。针对这一场景,需要一个轻量级的工具来增强选择器的可用性。
插件介绍¶
masknull/dsh-fetch-models-search 是一个运行在浏览器端的 DSH 插件。它的核心作用是在「获取可用模型」的候选弹窗顶部注入一个搜索框,支持输入即实时过滤候选列表。
核心功能¶
- 注入搜索框:在候选列表顶部增加搜索输入框,支持实时过滤。
- 纯 DOM 增强:不修改组件代码,基于稳定的 DOM 结构(无 CSS-hash 类选择器)工作。
- 适应重渲染:使用
MutationObserver监听 DOM 变化,确保在 React 重渲染后过滤状态依然有效。 - 逻辑隔离:过滤操作仅控制显示/隐藏,不影响复选框选择、全选/取消全选等语义。
- 完全可逆:卸载时仅移除注入的元素和样式,不影响页面原有状态。
- 本地化支持:根据页面语言显示提示(如中文或英文)。
- 零依赖:不引入
@deepseek-ai相关模块。
安装与启用¶
通过命令行安装到 web 配置文件中:
dsh plugin --profile web add github:masknull/dsh-fetch-models-search
安装后需重启 DSH 服务或刷新页面以加载插件。
典型用法¶
- 打开 DSH 的「设置 → 模型」。
- 展开一个 pi-ai 提供商卡片,点击「获取可用模型」。
- 弹出的候选列表上方会出现搜索框。
- 输入模型 ID 的部分字符(如
chat),列表会实时过滤。 - 清空输入框可恢复显示所有候选。
- 验证选择行为:勾选、全选/取消全选、添加选中等操作不受过滤影响。
适用场景与注意¶
- 适用范围:仅作用于「获取可用模型」选择器,不涉及手动编辑的模型行。
- 匹配规则:忽略大小写的子串匹配(仅匹配候选 ID 文本)。
- 全选逻辑:全选/取消全选按钮仍针对所有候选,不受当前过滤影响。
- 运行环境:插件在浏览器上下文中运行。安装前建议检查源码与许可证(MIT)。
结语¶
该插件通过浏览器端 DOM 增强,解决了长列表模型查找的问题,且对原有逻辑无侵入。更多细节可查阅 GitHub。