前言¶
在 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)。