dsh-opencode-usage:OpenCode Go 按模型用量与多账户设置页

前言

在 DeepSeek Harness(DSH)里走 OpenCode Go 时,官方 /inference/go/v1/usage 只给一组四舍五入的 rolling / weekly / monthly 百分比,且不区分模型;实际套餐却是按模型分别计额度。多账户轮换又往往交给另一个插件维护状态文件。若要在设置里一眼看到「每个模型本月还剩多少、本周烧了多少」,并在同一页管理账户池,就需要把会话日志、官方额度快照和账户路由读在一起展示。下面介绍社区插件 2869949486/dsh-opencode-usage(npm 包名 dsh-opencode-usage-settings,当前版本 1.4.1)的做法。

这是什么

维护者 GitHub 用户 2869949486,分类为客户端,同时在 Host 侧暴露 JSON 接口。一句话定位:在 DSH 设置里提供「OpenCode 账户与用量」页面,按模型统计 OpenCode Go 套餐用量与剩余额度,并逐个账户展示官方额度;账户池数据只读 dsh-opencode-quota-router 的状态文件,管理操作走该路由插件的 HTTP 接口。

插件简介(目录页):DSH plugin: per-model OpenCode Go usage and remaining allowance in a Settings page。完整能力以 GitHub README 为准。

核心功能

设置页(客户端)

页面挂在 DSH 设置 → OpenCode 账户与用量(settings.section 槽位),依赖 @deepseek-ai/dsh-client-ui-settings 注入,Web 端 immediately: true 加载。

  • 每 60 秒自动刷新;右上角有「立即刷新」。
  • 模型相关表格以「本月剩余 / 本月用量 / 本周用量」为列头;表格支持按住左右拖动。
  • 页面上还有「此刻用哪个更划算」类卡片:按每 100 万输出 tokens 折算金额,汇率默认 cnyPerUsd 为 7.1(可在 cordis.patch.yml 修改)。

数据接口(Host)

设置页数据源:

GET /opencode-usage.json

需要先用官方接口拉一次额度快照时:

GET /opencode-usage.json?refresh=1

价格与峰谷相关信息:

GET /opencode-usage.prices.json

(价格 JSON 在 README 中与 peak.chinaHolidays、下游账本对齐有关;具体字段以仓库为准。)

数据接口只监听回环地址;插件路由本身不做鉴权,部署时需注意本机访问边界。

多账户与账户管理

账户池由 dsh-opencode-quota-router 拥有,状态文件路径为 $DSH_HOME/opencode-quota-router.json。本插件只读该文件获取账户列表;增删改、探测、排序等管理通过 GET|POST /opencode-quota-router.json(quota-router 插件提供)完成。因此在同一设置页既能看额度,也能管账户。

页面上主要包括:

  1. 顶部状态条:正常 / 全量回退 及原因、当前账户、下次探测;「立即探测」「重置封禁标记」。
  2. 账户表:掩码后的密钥、官方 5 小时 / 本周 / 本月百分比、状态(可用 / 额度用尽 / 鉴权失败 / 已停用 / 未配置)。
  3. 行内操作:设为当前、↑ / ↓ 调顺序、停用 / 启用、改密钥、删除。
  4. 添加账户:填写备注与 oc_sk_… 形式密钥;密钥写入凭据库,页面仅显示掩码。

按顺序使用的行为(由账户池策略描述):当前账户任一窗口用尽时自动切到下一个并重试当前步骤,全部用尽才回退备用模型。按模型的统计仍是全局的——会话日志不区分具体用了哪个账户的密钥。

状态文件不存在时,页面退化为 apiKeyRef 指向的单个账户;两个插件分开安装也可各自工作。

响应里与账户相关的字段包括:accounts[](id / label / keyRef / enabled / active / configured / hint / usage / usageError / checkedAt)、activeAccount、usage(当前账户)、usageError。

按模型用量怎么算

官方 usage 接口无法按模型拆分,本插件自行汇总:

  1. 启动时回扫 $DSH_HOME/sessions 下近 40 天会话日志,取每条 assistant/message 的 usage 与 message.source(时间用事件自带的 time)。
  2. 之后监听 session/event,同一套 reducer 写入内存。
  3. 金额按内置价格表(离峰 / 标准价)估算;DeepSeek 模型在 UTC 周一至周五 01–04、06–10 峰段乘 2;免费模型价格为 0。中国法定节假日规则见下一节。
  4. 窗口起点优先用官方 resetsAt 反推,monthly 以 UTC 月初为界。

页面上仍会展示官方那一行百分比,供与自算结果交叉核对。

峰谷、节假日与套餐

页面上有两套时钟,用于「此刻用哪个更划算」等展示:

峰段时段 是否认中国法定节假日
OpenCode Go UTC 周一至周五 01–04、06–10 不认(节假日白天仍可能按峰段计)
DeepSeek 官方 API 北京周一至周五 09–12、14–18 认,节假日整天算谷

Go 不认节假日来自官方答复(issue anomalyco/opencode#53071):Go pricing follows our own schedule, not DeepSeek’s holiday calendar.

内置日历 HOLIDAYS(2026–2031)主要服务官方 API 一侧:判断「官方此刻是否谷段」、/opencode-usage.prices.json 的 peak.chinaHolidays 与下游账本对齐,以及在 holidayAware: true 时让历史估算走官方口径。默认 holidayAware: false,按模型统计金额即 Go 账单口径。

经济结论(README 说明,非实测案例):Go 套餐约 $10/月换 $100 官方价额度,额度内走 OpenCode 相对官方直连约为一折量级;峰段使额度消耗加快,但通常仍低于官方直连现价。例外包括额度用尽或某模型先触顶(例如 Go 档 Pro 月额度约 $15)。

cordis.patch.yml 的 plan 决定各模型月额度表,可选 go(默认)、go-plus、go-teams。官方百分比仅在额度变化 ≥1.5× 等明确场景下便于自动识别;Go $100 与 Go Teams $105 差距在估算噪声内时以配置为准。

安装与启用

已抓取 README 未给出 dsh plugin add … 一类安装命令,此处不编造命令。一般可在 DSH 社区目录页查看该插件的安装说明:

package.json 要求 DSH 引擎:

"engines": {
  "dsh": "^0.2.0-rc.1"
}

许可证:MIT。bundle 通过 cordis.patch.yml 打补丁;客户端导出 ./client,Host 入口为 ./index.js。

若需完整多账户 UI 与路由,需同时安装并配置 dsh-opencode-quota-router;仅单账户时可只依赖 apiKeyRef 退化模式。

典型用法

  1. 安装并启用插件后,打开 DSH 设置,进入 OpenCode 账户与用量。
  2. 查看按模型排列的本月剩余、本月用量、本周用量;需要时点击「立即刷新」,或等待 60 秒自动刷新。
  3. 多账户场景:在「账户」表中设为当前、调整顺序、停用或改密钥;通过「添加账户」写入 oc_sk_… 密钥。
  4. 需要强制同步官方额度后再看页面数据时,可对 Host 请求:
GET /opencode-usage.json?refresh=1
  1. 调整套餐档位或汇率时,编辑插件自带的 cordis.patch.yml(plan、cnyPerUsd、holidayAware 等,以仓库文件为准)。

适用场景与注意

适合谁:在 DSH 内长期使用 OpenCode Go、需要按模型看 harness 内用量估算,并希望在设置页统一管理 quota-router 账户池的开发者。

局限(README 原文要点):

  • 只统计本 harness 发出的调用;OpenCode 官方客户端等其它工具不计入。
  • 金额为估算;官方百分比无法按模型拆分,页面仅作对照展示。
  • 数据接口监听回环、路由无鉴权,勿暴露到不可信网络。

安全:插件以当前 DSH 进程权限运行,会读取 $DSH_HOME/sessions、账户状态与凭据引用。安装前请阅读源码与 MIT 许可证,确认密钥与日志访问范围可接受。

DSH 生态强调「一切皆插件」;skillhub.cn 上的社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-opencode-usage 把 OpenCode Go 的按模型用量估算、官方额度快照和多账户管理收进同一设置页,并辅以 Host 侧 opencode-usage.json 供自动化读取。若要核对功能细节或提交 issue,见 GitHub 仓库 2869949486/dsh-opencode-usage;目录入口见 skillhub 插件页。

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

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

小夜