dsh-model-selector:DeepSeek Harness 的增強模型選擇器

前言

DeepSeek Harness (DSH) 採用插件化架構。在模型選擇這一環節,官方組件提供了基礎功能。bittersmilezzz/dsh-model-selector 插件旨在優化這一體驗:它通過 shadow 方式疊加在官方輸入區的模型選擇 seat(conversation.input.model)之上,不覆蓋也不禁用官方組件,而是提供一層更直觀的交互層。

插件定位

  • 名稱:dsh-model-selector
  • 維護者:bitterSmilezzz
  • 分類:模型推理
  • 核心價值:提供單層模型菜單(支持搜索與分組摺疊)以及底部內聯的推理強度(Effort)滑桿。

安裝與啓用

插件通過 DSH CLI 安裝。

1、執行以下命令安裝插件(替換 <profile> 爲你的 DSH 配置文件名):

dsh plugin --profile <profile> add @bittersmilezzz/dsh-model-selector

2、啓用後刷新瀏覽器頁面(web profile)。頁面加載完成後,官方輸入區的模型選擇 seat 會被插件替換,菜單和滑桿將出現在界面中。

核心功能

該插件主要包含以下功能點:

  • 單層菜單與搜索:菜單採用單層結構,支持按名稱搜索。搜索結果支持命中片段高亮,並提供按供應商分組的摺疊功能。選中行與供應商標籤可見高亮,打開菜單時自動滾動到當前選中行。
  • 搜索寬容機制:支持大小寫、變音符以及 Unicode 摺疊差異(如 café 與 cafe)的匹配,採用 NFKD 歸一化處理。
  • 自適應佈局:菜單高度和寬度會根據視口實測進行鉗位,彈出方向自動適應(取上下空間較大的一側),確保在矮窗口或窄邊欄中不會溢出。
  • 完整鍵盤操作:支持方向鍵在結果間移動、Enter 選中首個命中、Escape 清空搜索詞並關閉菜單。IME 組合輸入的確認鍵不會被誤判爲選中。
  • 無障礙支持:搜索框被識別爲 combobox,結果列表爲 listbox 或分組視圖;採用 roving tabindex 機制,確保焦點在列表項間移動時只保留一個停靠點;狀態變化通過 live region 播報。
  • 推理強度滑桿:選中推理模型後,底部會出現內聯推理強度滑桿。該滑桿實時顯示當前檔位名與說明。
  • 錯誤提示:當宿主拒絕切換模型時,會通過官方 Toast 在輸入區上方播報失敗原因,即便菜單已關閉也能看到。
  • 自動選擇最強檔:選擇推理模型後,會自動落到最強的思考檔位(僅限已知檔位,適配器自造檔位不猜測),並在成功後提示落到的檔位。
  • 目錄同步:與官方 /model 彈窗共用 modelDirectories 目錄,兩處數據實時同步。

配置與權限

  • 配置項:插件無任何設置項,屬於純 UI 插件,不佔用“設置 → 插件 → 配置”卡片位。
  • 權限等級:low。插件運行在純 client UI 環境,不註冊 host 工具、不讀寫宿主文件、不訪問憑據、不發起自有網絡請求。模型目錄與切換動作通過官方 session RPC(ctx.remote.session)進行。

注意事項

  • 依賴與運行環境:需要依賴 DSH web profile(client 半區)及官方注入包(如 @deepseek-ai/dsh-client-ui-slots)。
  • Shadow 機制與優先級:插件通過 slot 優先級(priority: -1)shadow 官方 seat。若官方後續改動該 seat 的注入面,需同步適配。與其他也 shadow conversation.input.model 的插件同時安裝時,優先級決定渲染贏家。由於本插件優先級爲 -1(最低),在衝突時默認勝出。

結語

該插件專注於提升模型選擇的交互效率,特別是推理強度的可視化控制。適合需要頻繁切換模型或關注推理檔位配置的開發者使用。

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

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

小夜