前言¶
DeepSeek Harness(DSH)在模型選擇器中按供應商分組顯示模型線路,但具體展示哪些條目取決於配置:有 models: 列表的供應商只顯示列表中的線路,沒有該列表的供應商則顯示適配器的完整目錄,可能達到數百條。保持只顯示免費線路需要手動編輯 YAML 文件,而平臺會每幾天更新線路列表——新模型出現、免費層消失。手動維護成本高且容易遺漏變更。
dsh-lineup-manager 插件將這個流程變成設置頁面的複選框操作,支持按供應商批量管理,並能從平臺實時刷新線路列表,標記新增和下線的條目。
插件定位¶
- 名稱:dsh-lineup-manager(GitHub: cheeri020/dsh-lineup-manager)
- 維護者:cheeri020
- 版本:0.2.0
- 許可證:MIT
- 分類:模型推理
- 兼容性:DeepSeek Harness 0.2.1-rc.2,Node.js ^22.19.0 || >=24.0.0,所有平臺(純 ESM,無原生代碼)
插件通過 HTTP API 擴展 DSH 的設置面板,允許用戶勾選要顯示的模型線路,按供應商分組管理,並支持實時刷新標記變更。
核心功能¶
1. 按供應商分組管理¶
插件讀取 cordis.patch.yml 中聲明的供應商,爲每個供應商列出其所有已聲明的模型線路。每個線路對應一個複選框。
2. 批量操作¶
每個供應商提供三個快捷按鈕:
- All:選中該供應商的所有線路
- None:取消選中所有線路
- Free only:僅保留免費線路(需平臺提供免費標識,由插件讀取)
3. 實時刷新¶
刷新功能從平臺拉取當前線路列表,並與本地配置對比:
- 綠色 new 標記:平臺已提供,但未在本地勾選
- 灰色刪除線 gone 標記:本地已勾選,但平臺已下線
刷新僅標記差異,不會寫入配置,直到用戶保存變更。
4. 安全寫入機制¶
編輯配置存在風險,插件提供四重防護:
- Surgical replace:僅替換目標供應商的 models: 塊,其他部分不受影響
- Backup first:寫入前生成 cordis.patch.yml.bak-lineup-<timestamp> 備份
- Structural check:內存中驗證(無重複供應商、合法的模型 ID),失敗則拒絕寫入
- Read-back verify:寫入後重新讀取磁盤內容比對,不匹配則恢復備份
5. 線索識別與性能優化¶
插件通過以下方式實現可靠刷新:
- 繞過內置目錄:discoverModels 返回的是安裝時的凍結目錄,插件通過發送 baseURL 而非 provider 參數來獲取實時列表,避免展示過時數據
- 獨立命名空間:使用常量命名空間 dsh-lineup-manager,避免與 dsh-llm-pi-ai 的 loader 衝突
- Asar 讀取優化:通過精確的字節範圍讀取而非全量讀取,將內存佔用從數百 MB 降至約 69 MB
安裝與啓用¶
從 tarball 安裝(推薦)¶
pnpm pack # 生成 dsh-external-dsh-lineup-manager-<version>.tgz
dsh plugin add ./dsh-external-dsh-lineup-manager-0.2.0.tgz
安裝後重啓 DSH。
從 git 檢出安裝¶
dsh plugin add github:<you>/dsh-lineup-manager
prepare 腳本會在安裝時構建 dist/ 目錄。若 pnpm >=10 默認拒絕運行 git 依賴的構建腳本,可在 pnpm-workspace.yaml 中添加:
allowBuilds:
"@dsh-external/dsh-lineup-manager": true
僅對可信來源啓用,並建議固定 commit:github:<you>/dsh-lineup-manager#<sha>。
手動安裝¶
pnpm install
pnpm build # 生成 dist/ 並驗證
然後將包複製到 $DSH_HOME/profiles/<profile>/node_modules/ 並重啓 DSH。
典型用法¶
- 打開 Settings → 頂部的 “Lineups” 按鈕
- 面板列出
cordis.patch.yml中的所有供應商,每個供應商下有對應線路的複選框 - 對每個供應商,使用 All / None / Free only 批量操作,然後點擊 Save 保存該組
- 重啓 DSH,模型選擇器會反映變更
未保存的變更會被標記,關閉面板時會提示確認。
刷新線路列表¶
在供應商卡片上點擊 Refresh(或頁面底部的 Refresh all):
- 綠色 new 標記 = 平臺提供,但未在本地勾選
- 灰色刪除線 gone 標記 = 本地已勾選,但平臺已下線
刷新操作不寫入配置,僅標記差異。
配置建議:聲明 baseURL¶
強烈建議爲每個供應商聲明 baseURL:
openrouter:
apiKeyEnv: OPENROUTER_API_KEY
api: openai-completions
baseURL: https://openrouter.ai/api/v1
常見平臺的已驗證端點:
| Provider | baseURL |
|---|---|
| openrouter | https://openrouter.ai/api/v1 |
| opencode | https://opencode.ai/zen/v1 |
| nvidia | https://integrate.api.nvidia.com/v1 |
修改 baseURL 後需要重啓 DSH。
適用場景與注意¶
- 適合:需要頻繁調整模型線路列表、希望只顯示免費層、需要快速響應平臺變更的開發者
- 注意:插件以當前 DSH 進程的權限運行,安裝前建議檢查源碼與許可證
- 備份清理:備份文件
cordis.patch.yml.bak-lineup-*會累積,滿意配置後可手動清理
總結¶
dsh-lineup-manager 將手動編輯 YAML 的維護工作轉化爲設置頁面的複選框操作,支持按供應商分組、批量操作和實時刷新。四重寫入防護機制降低了配置損壞的風險,配合 baseURL 聲明確保了刷新的可靠性。對於需要精細控制模型線路可見性的 DSH 用戶,這是一個實用的輔助工具。
- 目錄頁:https://www.skillhub.cn/plugins/cheeri020/dsh-lineup-manager
- GitHub:https://github.com/cheeri020/dsh-lineup-manager