dsh-lineup-manager:DeepSeek Harness 模型線路管理器

前言

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。

典型用法

  1. 打開 Settings → 頂部的 “Lineups” 按鈕
  2. 面板列出 cordis.patch.yml 中的所有供應商,每個供應商下有對應線路的複選框
  3. 對每個供應商,使用 All / None / Free only 批量操作,然後點擊 Save 保存該組
  4. 重啓 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
羽毛球分组比赛记分
小程序二维码

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

小夜