dsh-ocg-billing
English | 中文
DeepSeek Harness(dsh)的 OpenCode Go 计费层插件。
在 dsh 已有的用量记录(会话日志中的 TokenUsage)之上增加计费能力:只抓一次官方 OpenCode Go 定价文档,价格表缓存到磁盘,之后主动检查更新而不是每次计费都联网;用默认模型分析账单;并在 Web 输入框下方常驻显示账单行。
> 社区插件,与 DeepSeek AI / OpenCode 无隶属关系。费用为依据官方文档的估算值,实际扣费以 OpenCode Go 订阅账单为准。
功能
- 常驻账单行(Web) — 挂在输入框下方(conversation.composer.dock):近 7 天全局成本、月度限额进度、当前会话成本、Top 模型、价格源新鲜度。每 60 秒自动刷新,点击立即刷新。
- 官方价格缓存 — ocg_pricing_check 重新抓取 opencode.ai/docs/go,与缓存比对,仅在价格表变化时更新(force: true 强制刷新);另有 24 小时后台自动检查。计费永远走缓存,不反复联网。
- 账单计算 — ocg_bill:全局(最近 N 天所有会话)或单会话(scope=session + sessionId),按模型/按会话明细;使用官方每 1M token 单价(含 Cached Read / Cached Write 与阶梯档:GPT 5.6 Luna 272K、Qwen3.7/3.6 Plus 256K);未知模型按 0 计并列明。
- 默认模型分析 — ocg_bill_analyze:先算账单,再调用默认模型(agent-default-model 选择,如 opencode-go/deepseek-v4-flash)输出摘要、异常点、成本驱动与省钱建议。
安装
预发布说明:DeepSeek Harness 处于 developer preview,peer 版本按当前 mainline 0.1.0-rc.6 声明。
# profile 方式 dsh plugin --profile web add <本仓库路径> # 或 link:/绝对路径 # 或 overlay 方式写 ~/.dsh/config.yaml # - insert: # - id: ocg-billing # name: '@hiro-nikaitou/dsh-ocg-billing'
重启 dsh web 后,输入框下方出现账单行(浏览器半区激活后生效)。
工具(模型可见)
| 工具 | 用途 |
|---|---|
| ocg_pricing_status | 价格缓存状态(来源/抓取时间/模型数),不联网 |
| ocg_pricing_check | 主动重新抓取官方文档并与缓存比对;仅在有变化时更新(或 force) |
| ocg_bill | 账单计算:全局或单会话,按模型/按会话 |
| ocg_bill_analyze | 账单 + 默认模型分析(摘要、异常、省钱建议) |
工作原理
- 价格缓存:D:\appdata\dsh\ocg-billing\pricing.json(首次运行以内置的官方文档价格快照作为种子,状态里带 seed 标记)。20 个文档内模型 + 额外种子条目(配置里存在但文档未列的模型,来源标记 models.dev/unknown)。
- 用量来源:依赖 dsh 已有用量记录——各会话日志的 request/header + assistant/message 事件(与 live-stats 同源)。全局范围聚合窗口内创建的会话;单会话范围按 sessionId 计费。
- 抓取通道:ctx.subprocess + curl.exe(Windows 上 bash/shell 通道不可用);其他平台回退 ctx.shell。
- RPC:客户端轮询 GET /api/ocg-billing/panel?sessionId=...(由 ctx.webServer 注册);宿主侧全局聚合缓存 5 分钟。
计费规则
- cacheRead 按官方缓存读单价(缺省回退输入单价);cacheWrite 按官方价(缺省回退输出单价)。
- 阶梯模型按单次请求输入 token 选择档位。
- 未知模型按 0 计费并在 unknownModels 中列出。
- 订阅费($10/月)作为参考展示,不计入用量成本。
License
[MIT](LICENSE)
免责声明
价格解析自官方文档页面,上游改版后可能滞后或解析偏差——可用 ocg_pricing_check 刷新。本插件与 DeepSeek AI / OpenCode 无隶属关系。