dsh-catalog-refresh:在 DSH 中重建模型目錄

DSH 默認使用 @earendil-works/pi-ai 包中的靜態模型列表。當 OpenRouter、Fireworks 等提供商發佈新模型後,這些新模型不會立即出現在 DSH 的模型選擇器和發現探針中,必須等待 pi-ai 包的版本更新。

dsh-catalog-refresh 插件在 DSH 啓動時(以及按計劃週期)從各提供商的 API 獲取實時模型列表,將其轉換爲 pi-ai 的 Model 條目,並直接修補 harness 的 MODELS 註冊表。同時,它通過寫入頭部觸發 dsh-llm-pi-ai 重新解析路由,使模型選擇器實時更新,無需重啓。

功能

  • 自動重建 DSH 運行時的模型目錄。
  • 從 OpenRouter、OpenCode Zen、Fireworks、Groq、Together 和 DeepSeek 獲取實時模型列表。
  • 修補 DSH 的 pi-ai MODELS 註冊表。
  • 通過寫入頭部使模型選擇器實時更新。
  • 支持推理努力級別(CATALOG_REFRESH_EFFORTS)。
  • 處理 Fireworks 推理預算驗證。

安裝與啓用

使用官方命令安裝插件:

dsh plugin --profile <profile> add dsh-catalog-refresh

配置與環境變量

安裝後,可通過環境變量控制插件行爲:

  • 刷新間隔
    設置重新獲取列表的時間間隔。
  CATALOG_REFRESH_INTERVAL_HOURS=24

默認值爲 12 小時。

  • 推理努力級別
    指定重建模型時提供的推理級別,逗號分隔。例如提供 off,low,medium,high。
  CATALOG_REFRESH_EFFORTS=off,low,medium,high

默認值爲 off,high,max。

  • 緩存目錄
    指定獲取的列表緩存位置。
  CATALOG_REFRESH_HOME=/path/to/cache

默認爲 $DSH_HOME 或 ~/.dsh。

  • 禁用插件
    設置爲 1 可完全禁用插件。
  CATALOG_REFRESH_DISABLE=1

工作原理與合併規則

插件啓動時會定位 dsh CLI 進程引用的 @deepseek-ai/dsh-llm-pi-ai 包,進而定位到 @earendil-works/pi-ai 包的 dist/models.generated.js 文件,直接替換其中的 MODELS[provider] 映射,並寫入頭部觸發重新解析。

數據源與認證

插件支持以下數據源:
- OpenRouter:完整詳情(定價、上下文、最大令牌等)。
- OpenCode Zen、Fireworks、Groq、Together、DeepSeek:僅返回 ID 列表。

認證方式使用環境變量(如 FIREWORKS_API_KEY、GROQ_API_KEY)或 DSH 模型頁面存儲的憑證記錄(llm-pi-ai/<provider>)。如果缺少密鑰,該源將被跳過,安裝的目錄保持不變。

合併策略

  • OpenRouter:實時條目獲勝(價格、上下文、最大令牌等),精選字段(兼容性、成本、協議)保留安裝條目中的值。
  • ID 列表源:保留安裝條目的精選字段(兼容性、成本、協議、協議),更新結構字段(上下文窗口、最大令牌、名稱)。未知 ID 會添加默認值。非聊天條目會被丟棄。

獲取的列表會被緩存在 $DSH_HOME/catalog-refresh/ 下,重啓即使無網絡也能應用上次有效的刷新。

推理努力級別支持

dsh-llm-pi-ai 僅在模型聲明 effort 元數據時顯示推理努力選擇器。此插件通過 CATALOG_REFRESH_EFFORTS 配置,爲重建的推理模型默認注入 thinkingLevelMap。默認情況下,推理模型提供 Off/High/Max 級別,非推理模型不提供。

對於 ID 列表源,已知 ID 保持安裝條目的能力標誌,未知 ID 默認視爲具有推理能力。Fireworks 的推理模型會通過原生端點路由以避免預算驗證錯誤。

適用場景與注意事項

此插件適合需要立即訪問最新模型列表的 DSH 用戶。

  • 插件以當前 DSH 進程的權限運行,請確保已檢查源碼與許可證。
  • 插件依賴 @deepseek-ai/cordis 依賴項。

更多信息請參考 GitHub 倉庫。

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

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

小夜