dsh-model-menu-search:DeepSeek Harness 模型菜單實時搜索

前言

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 版本更新後插件失效的問題,適合需要頻繁切換大量模型的用戶。插件目錄與源碼託管在下方鏈接。

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

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

小夜