前言¶
DeepSeek Harness WebUI 的模型選擇菜單通常列出大量模型,在模型列表較長時,用鼠標滾動查找特定模型效率較低。dsh-model-menu-search 在模型下拉菜單頂部添加一個實時搜索框,允許直接通過輸入關鍵詞過濾模型列表。
插件概覽¶
- 核心功能:給模型下拉菜單添加實時搜索框。
- 匹配邏輯:支持按名稱子串、歸一化匹配、子序列/縮寫匹配。
- 篩選能力:支持供應商前綴(如
@bailian)篩選。 - 兼容性:不搶 slot、不改共享服務,跨版本可用;零 import、零 peer 依賴。
- 開發者:LovelyDazai。
- 許可證:MIT。
安裝與啓用¶
插件需安裝在 desktop profile 裏,通過 link: 指向本目錄(符號/聯接而非拷貝),編輯配置文件後刷新頁面生效。
1. 編輯依賴
在 ~/.dsh/profiles/desktop/package.json 中添加依賴項:
{
"dependencies": {
"dsh-model-menu-search": "link:D:/workplace/dsh-model-menu-search"
}
}
2. 添加到 bundles
在同一個文件的 dsh.profile.bundles 數組中添加插件名:
{
"dsh.profile.bundles": [
"dsh-model-menu-search"
]
}
3. 創建模塊聯接
在 ~/.dsh/profiles/desktop/node_modules/ 下創建指向插件目錄的聯接:
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-model-menu-search" -Target "D:\workplace\dsh-model-menu-search"
完成上述步驟後,刷新 DeepSeek Harness 頁面即可生效。
核心功能¶
- 語義定位:使用 ARIA 語義屬性(
role="menu"、role="menuitemradio")定位元素,不依賴哈希類名(DSH 的 CSS Module 類名每次構建都會變),避免版本更新導致失效。 - 高度適配:菜單高度超出視口時,會自動將搜索框所在區域夾入視口可見範圍。
- 容錯機制:代碼絕不拋錯,失敗時僅輸出
console.warn,不會影響 DSH 整體運行。
典型用法¶
輸入框支持多種匹配模式,分隔符支持空格、逗號、分號、斜槓、豎線。
| 輸入示例 | 匹配效果 |
|---|---|
glm |
按名稱子串過濾(大小寫無關),命中包含 glm 的模型 |
glm53 |
歸一化匹配:忽略 - _ . / 空格,命中 glm-5.3-prime |
dsr1 |
子序列/縮寫匹配,命中 deepseek-reasoner-1 |
@bailian |
只顯示供應商爲 bailian 的模型 |
@bailian qwen |
供應商 + 關鍵詞組合篩選 |
reasoner; 32b |
分隔符處理,同時匹配關鍵詞 |
鍵盤導航:
* ↓ / ↑:在可見的模型行之間移動。
* Enter:直接選中當前高亮模型。
* Esc:先清空輸入框,再按一次關閉菜單。
注意事項¶
- 更新機制:修改本地插件代碼後,只需刷新頁面即可生效,不會被插件市場升級覆蓋。
- 版本修復:1.0.3 版本修復了推理檔位面板出現多個搜索框的問題(通過增加
title屬性判斷和自動隱藏機制)。 - 權限與來源:插件以當前 dsh 進程權限運行,安裝前建議檢查源碼與許可證。
結尾¶
該插件通過零依賴和語義化定位,解決了 DeepSeek Harness 版本更新後插件失效的問題,適合需要頻繁切換大量模型的用戶。插件目錄與源碼託管在下方鏈接。