dsh-model-show:Composer 模型選擇器顯示「供應商/模型」

前言

在 DeepSeek Harness(DSH)Web 客戶端裏,Composer 頂部的模型選擇器默認只顯示模型名,例如 Example Chat · High。當你在同一套配置裏掛了多個供應商、模型名又相近時,光看觸發器很難確認當前會話實際走的是哪一路。社區插件 dsh-model-show(維護者 ken95573,分類:模型推理)不改下拉菜單結構,只把觸發器、懸停提示和 ARIA 標籤改成 Provider/Model 形式,與內置模型選擇插件配合使用。

下面介紹插件定位、能力邊界、安裝方式與驗收步驟。事實以 GitHub 倉庫 README 與 package.json 爲準;目錄頁見 SkillHub 插件頁。

這是什麼

dsh-model-show 是面向 DSH web 客戶端的插件包(當前版本 1.0.1,許可證 MIT)。它在 Composer 的模型選擇器觸發器上同時展示 供應商名稱 與 模型名稱,格式固定爲 Provider/Model;若模型上報 reasoning effort,DSH 原有的 · <effort> 後綴仍會保留。

README 中的對比示例:

Composer 觸發器文案
安裝前 Example Chat · High
安裝後 Example Provider/Example Chat · High

下拉菜單本身不被改寫:各行仍是在供應商分組標題下的純模型名,搜索仍按純模型名匹配;供應商名稱不會參與菜單內搜索。供應商顯示名來自你自己的模型配置裏每個 provider 行的 displayName(例如 Example Provider)。

核心功能

  1. 觸發器文案:當前選中項在 Composer 上顯示爲 Provider/Model(及可選的 effort 後綴)。
  2. 無障礙與懸停:hover tooltip 與 ARIA label 與可見觸發器使用相同 Provider/Model 文本。
  3. 陰影內置席位:插件複用內置 @deepseek-ai/dsh-client-ui-model-selection 的 modelDirectories 服務,以更低優先級註冊 Composer seat,覆蓋內置展示邏輯;內置模型選擇插件需保持啓用。
  4. 無配置項:展示格式固定,README 明確說明 No configuration。

環境與依賴

  • DSH 版本(engines.dsh):>= 0.2.0-rc.1 < 0.3.0-0 或 >= 0.2.1-rc.1 < 0.4.0-0;面向 web 客戶端平臺。README 寫明在 Desktop runtime 0.2.0-rc.2 上開發,並在 0.2.1-rc.2 上重新 vendoring 與測試。
  • 內置插件:@deepseek-ai/dsh-client-ui-model-selection 必須保持啓用;本插件只「陰影」Composer 席位,不替代整套模型目錄服務。

安裝與啓用

插件以當前 DSH 進程權限運行。安裝前建議在 GitHub 查看源碼與 MIT 許可證(lib/client.js 衍生自 DeepSeek 內置 bundle,見倉庫 NOTICE.md)。

插件市場

在目標 DSH 應用中打開插件市場,搜索包名 dsh-model-show,安裝後啓用。

Desktop CLI

Desktop 應用自帶 CLI(desktop profile 僅由該應用管理)。在 Windows 上示例命令如下(路徑來自 README):

"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-model-show

從 GitHub 或本地目錄添加時,README 給出的形式爲(將 <user>、路徑替換爲實際值):

"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:<user>/dsh-model-show
"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "C:\path\to\dsh-model-show"

卸載:

"%LOCALAPPDATA%\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-model-show

在 DSH 會話中

可在會話裏讓智能體通過 plugin_manager 的 action: install_bundle,以插件目錄爲 target 安裝。

安裝後請刷新頁面。若要用不同構建替換已加載的插件,README 要求 重啓應用。

典型用法與驗收

本插件沒有額外配置文件或 API 調用;啓用並選好模型後,直接觀察 Composer 觸發器即可。

README 建議的驗收步驟:

  1. Composer 觸發器顯示 Provider/Model(若模型有 reasoning effort,則還帶 · <effort>)。
  2. 懸停觸發器,文案與可見文本一致。
  3. 打開下拉菜單:分組標題下仍是純模型名;用供應商名搜索 不應 匹配到模型項。

倉庫文檔截圖示例:供應商 OpenCode Zen、模型 DeepSeek V4.1 Flash,觸發器類似 OpenCode Zen/DeepSeek V4.1 Flash 加 DSH 自帶的 Default 等 effort 後綴(見 README 與 docs/composer-trigger.png)。

實現要點(便於排查)

  • Node 側 lib/index.js 爲空實現,用於掛載 bundle;瀏覽器側經 dsh.client 與 exports["./client"] 加載。
  • cordis.patch.yml 插入插件行(id: model-show,name: dsh-model-show)。
  • lib/client.js 爲內置模型選擇瀏覽器 bundle 的 vendored 副本,含六處 documented 編輯;可見變化主要來自對 choices[].model.name 加供應商前綴,以及以 priority: -1 註冊 Composer seat。
  • 標籤前綴加在觸發器讀取的 currentChoice?.model.name 上,因此菜單分組與搜索邏輯保持不變。

適用場景與限制

適合:多供應商、多模型並存,需要在 Composer 上一眼區分「哪家的哪個模型」,又不想改下拉或搜索行爲的使用者。

限制(README Limitations):

  • lib/client.js 隨上游內置 selector 演進可能失效;engines.dsh、vendoring 腳本與 npm test 是維護時的護欄。
  • 繼承內置控件的樣式與觸發器寬度 min(360px, 45cqw);過長的 Provider/Model 會被省略號截斷,不會換行。
  • 不能隨意裁剪 vendored bundle 的 inject 服務列表,否則可能出現首屏渲染錯誤且靜默回退到內置席位。
  • 未來 DSH 若重做內置模型選擇器,可能需要作者重新 vendoring 並更新編輯錨點。

結尾

dsh-model-show 用最小改動回答一個問題:當前 Composer 會話到底用的是哪個供應商下的哪個模型。安裝啓用後刷新(或必要時重啓),按上文三步驗收即可。

  • 社區目錄頁:https://www.skillhub.cn/plugins/ken95573/dsh-model-show
  • 源碼與說明:https://github.com/ken95573/dsh-model-show
羽毛球分组比赛记分
小程序二维码

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

小夜