OpenCode
OpenCode 提供一个推理网关,转售多家厂商的付费文本模型。Dline 直接与该网关通信,因此一个 Profile 就能覆盖网关提供的全部模型。
官网: opencode.ai|模型与价格参考: opencode.ai/docs/zen
一个 Profile 由两个彼此独立的选择组成:
- Plan 决定由哪份订阅付费,以及 Dline 读取哪一份模型目录。
- API Format 决定发送请求所用的线上协议。
两者独立,是因为同一份模型可以通过多种协议由网关提供。改动其中一项,不会让另一项留在过期状态。
获取 API Key
Section titled “获取 API Key”-
登录持有余额或订阅的那个 OpenCode 控制台工作区。
-
创建 API Key。
-
立即复制并妥善保存 Key。Dline 只在本地保存该 Key,并仅用于调用网关。
在 Dline 中配置
Section titled “在 Dline 中配置”通用步骤见模型配置。
-
点击 Dline 面板标题栏的 Settings 按钮。
-
在 Provider 中选择 OpenCode。
-
在 Plan 中选择该 Profile 计费所依据的订阅。下拉框下方的说明会写明所选 Plan 消耗的是什么。
-
把 Key 粘贴到 OpenCode API Key 输入框。
-
在 Model 中选择模型。
-
在 API Format 中选择协议。付费文本模型三种协议都可用,网关会在其间做转换。
Dline 从网关的模型清单端点读取该 provider 的模型集合,因此新增模型不需要等新构建。清单只提供事实,Plan 只决定读取哪一份目录,所以遇到应有的模型缺失时,先切换 Plan。
打开 Model 列表时会向网关请求当前清单,所以本构建之后发布的模型无需等待版本更新就会出现。上下文档位、最大输出、能力与价格都来自该清单;Plan 覆盖范围、默认模型、思考控件与网关托管工具则由 Dline 声明,因为清单无法表达这些。
| Plan | 消耗的是什么 |
|---|---|
| Pay-as-you-go | OpenCode 控制台工作区上的预付费余额。 |
| OpenCode Go | Go 订阅。超出额度后的请求需要开启 Extra Usage。 |
| OpenCode Go Plus | Go 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 Completions | https://opencode.ai/inference/openai/v1 |
| OpenAI Responses | https://opencode.ai/inference/openai/v1 |
| Anthropic Messages | https://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 控制台查看。
每次请求花了多少
Section titled “每次请求花了多少”每个响应都会在 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 里存的协议不属于本服务商承载的三种之一。请从提示中列出的一项里选。 |