前言¶
在 DeepSeek Harness(DSH)的插件化架構下,管理多個 LLM 提供商(Provider)的設置頁面容易變得碎片化。dsh-llm-providers-ui 插件作爲宿主,統一管理 LLM Providers 的設置外殼、卡片排序和選擇器邏輯,爲其他 Provider 插件提供共享的 UI 上下文和工具集。
是什麼¶
該插件負責掛載 LLM Providers 設置頁面。它擁有 llm-providers 設置命名空間(唯一寫入者),並接管 Web 端 settings.section 中的 id: providers(排序 12)區域。通過它,Provider 插件可以註冊卡片,並共享排序、配額顯示和模型目錄編輯功能。
核心功能¶
- 設置外殼管理:提供統一的 LLM Providers 設置頁面容器。
- 卡片與排序:支持卡片拖拽重排、Picker 排序管理,以及保存和恢復的順序邏輯。
- UI 組件庫:提供共享的 Provider 配額儀表盤、詳情模板、模型目錄編輯器及選擇器對話框。
- 交互實現:提供可拖拽排序列表的實現。
- 數據與緩存:提供 Provider 使用量讀取器、緩存管理及配額狀態判斷。
安裝與啓用¶
該插件是一個打包後的包,必須列出在 Profile 中。在安裝其他 Provider 插件前,請先安裝此插件:
dsh plugin --profile web add --force \
https://github.com/NOirBRight/dsh-llm-providers-ui/releases/latest/download/dsh-llm-providers-ui-0.2.8.tgz
典型用法¶
Provider 插件需要通過該插件提供的接口進行註冊和集成:
- 註冊卡片:在
settings.provider.item下注冊卡片,使用 Provider 的settingsNs作爲 Key。 - 註冊目錄:在
ctx.providerDirectory中註冊{ key, role, header, usage }。 - 引入讀取器:如果 Provider 需要顯示使用量,從
dsh-llm-providers-ui/usage-readers導入讀取器工廠。 - 引入類型與插槽:從
dsh-llm-providers-ui/client導入目錄和插槽類型(使用import type {}語法)。 - 渲染組件:使用
dsh-llm-providers-ui/provider-ui中的ProviderCardHeader和ProviderQuotaMeter組件渲染頭部和配額,並使用dsh-llm-providers-ui/provider-detail渲染詳情。
注意事項¶
- 版本鎖定:宿主
@deepseek-ai/dsh-*包未鎖定版本(peer 爲*),僅devDependencies鎖定了編譯目標0.1.5-rc.1。Cordis 版本需保持在>=4.0.2 <5.0.0。 - 依賴關係:在 DSH 支持掛載傳遞式 Bundle 之前,必須將此插件列在 Profile 中。
- 導出路徑:僅導出已構建的
lib/入口點,嚴禁從src目錄導入代碼。 - 導航圖標:導航欄上的 14px 地球圖標是一個臨時的 DOM 適配器(
src/client/nav-icon.ts),通過MutationObserver實現。不應將其複製到 Provider 插件中,等待 DSH 開放公共圖標接口後再移除此文件。 - 卸載行爲:卸載該插件的所有者會丟棄設置命名空間;重新加載會重新創建它,但 Provider 的 Host 服務本身不會受影響(因爲它們的
llm路由是獨立的)。 - 無權限限制:該插件以當前 DSH 進程權限運行,安裝前請檢查源碼與許可證。
結語¶
dsh-llm-providers-ui 是構建 Provider 插件時的核心基礎設施。通過提供統一的外殼、配額管理和排序邏輯,它簡化了多 Provider 環境下的設置管理複雜度。開發者應關注其導出的構建產物,遵循其消費契約以保持生態的一致性。