dsh-router-loomy: 訊飛 Loomy OpenAI 兼容供應商接入

在 DeepSeek Harness (DSH) 的插件化架構中,dsh-router-loomy 插件提供了一個將訊飛 Loomy 辦公助手雲端通道作爲供應商接入 dsh-router 的方案。該插件參照 dsh-router-traework 的同構範式編寫,將 Loomy 的接口封裝爲 OpenAI 兼容的格式,供 DSH 核心統一管理。

核心功能

本插件主要解決將本地 Loomy 客戶端登錄態接入雲端通道的問題,核心能力如下:

  • OpenAI Chat Completions 兼容:提供單一端點 POST /chat/completions,完全兼容 OpenAI 的請求與響應格式,支持 SSE 流式響應。
  • 自動獲取登錄態:憑證無需手動粘貼,插件會自動讀取本機 Loomy 客戶端登錄後落盤的 userData/auth-session.json 文件。
  • 統一路由管理:插件只暴露差異化邏輯(如 status、listModels、generateLoginUrl 等),選號、冷卻、換號、別名、模型啓用狀態、積分緩存等通用能力由 dsh-router 核心統一管理。
  • 上游截斷檢測:針對上游靜默截斷(發送 [DONE] 但不返回 finish_reason)的問題,插件實現了 guardUpstreamStream 收尾校驗邏輯。

安裝與啓用

安裝插件需要使用 npm。

npm install dsh-router-loomy

安裝完成後,需要在 Profile 的配置中註冊該插件。在 Profile 的 package.json 的 dsh.profile.bundles 字段中添加 'dsh-router-loomy':

{
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-router-loomy"
      ]
    }
  }
}

重啓 DSH 進程後,日誌中若出現 [dsh-router-loomy] registered router.suppliers: loomy,表示安裝成功。

登錄與憑證獲取

Loomy 的憑證不在網頁中,而是存儲在本機客戶端登錄後生成的文件裏。本插件通過啓動本地客戶端並讀取文件來實現登錄態獲取。

  1. 在 dsh-router 面板的 Loomy 卡片點擊 「添加鏈接」。
  2. 插件會自動啓動本機 Loomy 客戶端,並給出一個指向「客戶端狀態頁」的鏈接。
  3. 在彈出的客戶端窗口中完成登錄。
  4. 回到面板點擊 「完成添加」。插件會讀取 auth-session.json 並完成賬號註冊。

如果客戶端之前已登錄,面板會自動掃描該文件並顯示賬號,無需重複操作。對於無法自動探測客戶端路徑的情況,可以通過設置環境變量 LOOMY_CLIENT_EXE 指定路徑。

上游契約與截斷處理

插件對接的上游端點爲 POST https://loomyad.xunfei.cn/api/v1/chat/completions。請求必須攜帶特定的追蹤頭(如 traceparent、chatid、msgid、loomy-version、invokeorigin)。

上游響應採用 SSE 流式格式,末尾幀包含 usage 信息(含 points_consumed)。需要注意的是,上游有時會在生成未結束時靜默發送 data: [DONE] 而不提供 finish_reason。插件對此進行了如下處理:

  • 正常收尾:有 finish_reason 且有正文或工具調用,直接放行。
  • 檢測截斷:無 finish_reason 且 completion_tokens < max_tokens,插件會攔截 [DONE],觸發核心報錯並自動重試(重試會重發整段上下文,成本較高)。
  • 長度截斷:無 finish_reason 但 completion_tokens >= max_tokens,直接補一幀 finish_reason: "length" 放行。

注意事項

  • 依賴環境:插件依賴 @deepseek-ai/cordis 和 cordis(由宿主注入),Node.js 版本要求爲 20 及以上。
  • 重試成本:由於截斷檢測的重試邏輯會重發整段上下文,可能導致較高的積分消耗。同一賬號連續截斷 2 次後,插件將停止重試並標記爲長度截斷。
  • 許可證:本插件採用 MIT 許可證。

相關鏈接

  • 插件目錄:https://www.skillhub.cn/plugins/2404723600/dsh-router-loomy
  • GitHub 倉庫:https://github.com/2404723600/dsh-router-loomy
羽毛球分组比赛记分
小程序二维码

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

小夜