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)。

鏈接

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

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

小夜