dsh-ollama-cloud-provider:在 DSH 里接入 Ollama Cloud 的 LLM 路由

前言

DeepSeek Harness(dsh)通过插件扩展模型来源。若你已经在 Ollama Cloud(https://ollama.com)开通 API,又希望在 dsh 的模型选择器里直接选云侧模型、并沿用 dsh 的对话、工具调用与凭证管理,自行拼 OpenAI 兼容 base URL 往往还要处理目录同步、余额与多密钥轮换。@goodandready/dsh-ollama-cloud-provider 由社区维护者 GooDAnDReaDY 发布,在 dsh 中注册原生 LLM 路由 ollama-cloud,对接官方云端接口。下面介绍其定位、能力与安装配置方式。

这是什么

该插件是面向 DeepSeek Harness 的 Ollama Cloud LLM Provider。npm 包名为 @goodandready/dsh-ollama-cloud-provider,当前资料中的版本为 0.1.4,许可证 MIT。插件向 dsh 注册一条路由 ollama-cloud,请求发往 https://ollama.com;每次调用按当前凭证解析 API Key,密钥变更后无需重启进程即可作用于下一次请求。

传输与能力概览

插件按模型选择两种线上协议:

传输 端点 适用场景
native(默认) POST /api/chat thinking、工具调用、usage 计数等
openai-chat POST /v1/chat/completions OpenAI 兼容部署或回退

两种传输均支持文本、thinking、工具调用、图片、usage 与 finish reason。模型目录通过 GET /v1/models 拉取,并用 GET /api/tags 补充能力标记,供 dsh 选择器展示上下文窗口、输入模态、推理等级、工具支持等限制。余额与用量走官方 GET /api/balance、GET /api/usage(含按模型分组);插件对查询结果做缓存,不在后台轮询。定价估算参考 Ollama 公开价目表(含错峰费率),可按模型覆盖。

多账号方面:在任意内容开始流式输出之前,若遇到 401/403/429 或配额拒绝,会标记当前密钥并换下一个账号重试;已开始的流不会重放。冷却状态写入 ~/.dsh/storages/dsh-ollama/cooldowns.json(以密钥指纹为键,不存明文)。支持按会话粘性账号,以及 modelAccountRules 用 glob 将模型绑定到指定账号。

界面与命令:Settings → Ollama Cloud 可管理密钥、余额、账号、规则、模型白名单、按模型传输方式等;可选侧边栏配额卡片与中央配额面板。终端侧提供 TUI 配置段;/ollama 命令可查看状态、用量、余额、账号、模型、规则并执行 test [model]。插件声明兼容 dsh 0.2.0-rc.2 与 0.2.1-rc.2,运行环境要求 Node >=22。

安装与启用

资料中的推荐方式是从 npm 安装指定版本(Web 与 Desktop 使用不同 profile):

dsh plugin --profile web add @goodandready/dsh-ollama-cloud-provider@0.1.4

DSH Desktop:

dsh plugin --profile desktop add @goodandready/dsh-ollama-cloud-provider@0.1.4

若本地已 npm pack 得到 tarball,也可用绝对路径安装:

dsh plugin --profile web add /absolute/path/to/goodandready-dsh-ollama-cloud-provider-0.1.4.tgz

README 注明:在 dsh 0.2.1-rc.2 上,Desktop CLI 若把本地目录传给 dsh plugin add 会别名并覆盖目标 package.json,应使用 tarball 而非源码目录。

安装后重启 dsh(或 DSH Desktop),在模型选择器中选 Ollama Cloud。

配置与密钥

插件在 dsh 配置中典型片段如下(除 apiKey 外字段可在设置 UI 中调整):

- id: llm-ollama-cloud
  name: "@goodandready/dsh-ollama-cloud-provider"
  config:
    apiKeyEnv: OLLAMA_API_KEY      # default
    # apiKey: ...                  # composition only, never commit
    transport: native              # native | openai-chat
    requestTimeoutMs: 300000
    streamIdleTimeoutMs: 300000
    visibleModels: []
    modelTransports: {}
    accounts:
      - label: Work
        apiKeyEnv: OLLAMA_API_KEY_2
    activeAccount: ''
    stickySession: true
    showSidebarQuota: false
    planLabel: ''

密钥解析顺序:config.apiKey(仅组合场景)、apiKeyEnv 对应的 dsh 凭证、以及启动环境(进程、项目 .env、$DSH_HOME/.env)。在 https://ollama.com/settings/keys 创建密钥;文档写明密钥不过期,且仅接受 Authorization: Bearer,不接受 x-api-key。

第二账号可在 Settings → Ollama Cloud → Accounts 添加名称与凭证引用(如 OLLAMA_API_KEY_2)并保存。用 glob 固定模型与账号时,示例:

modelAccountRules:
  - pattern: "*flash*"
    account: "Work"

第一条匹配规则生效,*、? 不区分大小写,其余账号仍可作为回退。

适用场景与注意

适合已在 Ollama Cloud 付费或试用、希望在 dsh 内统一选模、看多账号轮换与用量/余额展示的团队或个人。插件以当前 dsh 进程权限运行,安装前请自行审阅 GitHub 仓库 源码与 MIT 许可证;勿将真实 apiKey 提交到版本库。

社区插件目录见 SkillHub 条目,与 DeepSeek / 幻方无官方从属关系。问题与功能建议可通过仓库 Issues 反馈。

结尾

dsh-ollama-cloud-provider 把 Ollama Cloud 封装为 dsh 原生路由 ollama-cloud,覆盖双协议传输、实时模型目录、余额用量、多账号与设置界面。按上文命令安装、配置 OLLAMA_API_KEY 并重启后,即可在模型选择器中使用 Ollama Cloud。

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

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

Xiaoye