跳转到内容

OpenCode

OpenCode 提供一个推理网关,转售多家厂商的付费文本模型。Dline 直接与该网关通信,因此一个 Profile 就能覆盖网关提供的全部模型。

官网: opencode.ai|模型与价格参考: opencode.ai/docs/zen

一个 Profile 由两个彼此独立的选择组成:

  • Plan 决定由哪份订阅付费,以及 Dline 读取哪一份模型目录。
  • API Format 决定发送请求所用的线上协议。

两者独立,是因为同一份模型可以通过多种协议由网关提供。改动其中一项,不会让另一项留在过期状态。

  1. 登录持有余额或订阅的那个 OpenCode 控制台工作区。

  2. 创建 API Key。

  3. 立即复制并妥善保存 Key。Dline 只在本地保存该 Key,并仅用于调用网关。

通用步骤见模型配置。

  1. 点击 Dline 面板标题栏的 Settings 按钮。

  2. 在 Provider 中选择 OpenCode。

  3. 在 Plan 中选择该 Profile 计费所依据的订阅。下拉框下方的说明会写明所选 Plan 消耗的是什么。

  4. 把 Key 粘贴到 OpenCode API Key 输入框。

  5. 在 Model 中选择模型。

  6. 在 API Format 中选择协议。付费文本模型三种协议都可用,网关会在其间做转换。

Dline 从网关的模型清单端点读取该 provider 的模型集合,因此新增模型不需要等新构建。清单只提供事实,Plan 只决定读取哪一份目录,所以遇到应有的模型缺失时,先切换 Plan。

打开 Model 列表时会向网关请求当前清单,所以本构建之后发布的模型无需等待版本更新就会出现。上下文档位、最大输出、能力与价格都来自该清单;Plan 覆盖范围、默认模型、思考控件与网关托管工具则由 Dline 声明,因为清单无法表达这些。

Plan消耗的是什么
Pay-as-you-goOpenCode 控制台工作区上的预付费余额。
OpenCode GoGo 订阅。超出额度后的请求需要开启 Extra Usage。
OpenCode Go PlusGo Plus 订阅,它提高了每个模型的月度额度。
OpenCode Go Teams工作区的 Go Teams 订阅,每位成员各自拥有独立额度。

Plan 是一个显式设置,而不是从响应里推导出来的值。网关把 Go Plus 与 Go Teams 都报告为 Go 计划,只有这个设置能区分它们,而用量展示需要这份差异才能按对应的额度算出百分比。

只有 Plan 决定读取哪一份目录。因此选错 Plan 表现为模型列表和价格不对,而不是直接报错;发现预期模型不在列表里时,先检查 Plan。

Dline 从网关清单里每个模型所属的 API 家族推导协议。OpenAI 家族落在 openai/v1 上,该基址同时接受 Chat Completions 与 Responses,所以这两个协议都可以选;Anthropic 家族只落在 anthropic/v1 上。推导结果是 默认值,不是限制:对非原生协议,网关会在服务端做转换,所以不需要按模型所属厂商来选,也可以手动改成别的协议。

API Format实际端点
OpenAI Chat Completionshttps://opencode.ai/inference/openai/v1
OpenAI Responseshttps://opencode.ai/inference/openai/v1
Anthropic Messageshttps://opencode.ai/inference/anthropic/v1

Go 订阅的 Profile 以 https://opencode.ai/inference/go 为基址,端点相应变为 .../go/openai/v1 与 .../go/anthropic/v1。

当目录声明了模型的原始协议,而你选了另一种协议时,卡片会在 API Format 下方说明:Console 会转换你所选的协议。

如果 Profile 里存着一个本服务商无法承载的协议,或所选模型未声明的协议,请求会在发送前直接失败,不会静默改用另一种协议。

卡片渲染的是所选模型自己声明的推理控件,而不是固定控件:

  • 声明了强度等级的模型会显示 Enable Thinking 与该模型自身等级范围内的 Thinking Level 选择器。
  • 声明了 token 预算的模型会显示 Enable Thinking 与 Thinking Budget 选择器,候选项由其声明的最小、最大值按 1024 token 步长生成。
  • 声明了 canDisable: false 的模型保持思考开启,复选框无法取消。
  • 完全没有声明推理能力的模型不显示任何控件,这样 Profile 就不会存下网关会忽略的偏好。

Go 计划的 Profile 从 GET https://opencode.ai/inference/go/v1/usage 读取用量,每 60 秒刷新一次。用量限额是按模型不同的月度美元额度,三个窗口都是这个额度的比例:5 小时窗口是 20%,每周窗口是 50%,每月窗口是 100%。

该端点报告的是每个窗口已用多少,而不是还剩多少,因此这里展示的是百分比而不是美元余额。超过 100% 是真实状态:开启 Extra Usage 后,达到限额会继续从按量付费余额扣费。

按量付费的 Console Profile 没有对应端点。它的用量区域会直接说明该值不可用,而不是显示一个猜测的零;当前余额请到 OpenCode 控制台查看。

每个响应都会在 token 用量旁报告这次请求实际花了多少:OpenAI 与 Anthropic 协议在 usage 里,Responses 在 response.completed 上。Dline 直接用这个金额作为该次任务请求的成本,因为它是唯一已经计入高峰时段、长上下文与折扣定价的数字。

这是单次请求的成本,与上面那个账户用量面板无关:用量面板仍然只显示百分比,不读取这里的任何字段。0 表示这次请求本身没有花钱,涵盖免费模型与 Go 在限额内的请求。

问题处理方式
提示 This model is only available inside the OpenCode client网关返回 403。该模型仅限厂商自家客户端使用。请改选付费模型,或改用 Go 计划。
提示 The selected model is not available in this OpenCode mode网关返回 404。所选 Plan 的目录中没有该模型。请换模型或切换 Plan。
切换 Plan 后请求立即开始失败模型列表和价格都来自所选 Plan 的目录。请在新列表里重新选择模型。
协议选择被拒绝Profile 里存的协议不属于本服务商承载的三种之一。请从提示中列出的一项里选。