dsh-router-loomy: iFlytek Loomy OpenAI-Compatible Provider Integration

在 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye