dsh-model-surplus:在会话标题旁看模型用量与账户余量

前言

用 DeepSeek Harness(DSH)跑多模型会话时,额度往往分散在不同上游:OpenCode Go 有滚动 / 周 / 月窗口,Command Code 有 5 小时与周窗口,DeepSeek 官方则是账户余额。切模型后若仍靠浏览器外查用量,容易打断调试节奏。下面介绍社区插件 dsh-model-surplus(维护者 itchenshi),它在 会话标题右侧 按 当前选中的模型 展示对应分区的用量、套餐额度或余额;不属于 npm 包,需通过 DSH 插件机制或 DSH Ready GUI 安装。

这是什么

dsh-model-surplus 是 DSH 的 客户端(Web) 插件:小组件挂在会话标题右侧,用到哪个模型就显示哪一份数据,切换模型会立即显示或隐藏。上游 HTTP 请求在 宿主端 发出,API 密钥从引擎凭据服务按引用读取,不会下发到浏览器。三个业务分区(OpenCode Go、DeepSeek、Command Code)各自独立上报;只配置其中一个分区的密钥时,其余分区仍可工作,缺失部分会显示原因(如 no key、usage n/a)。

核心功能

OpenCode Go

  • 展示滚动、周、月三个窗口的 用量百分比(账户级,上游接口不按单模型拆分百分比)。
  • 展示 当前所选模型 的月度上限(例如 上限 $60);上限数据来自公开文档页,与百分比来源不同,二者可能对不齐,属预期行为。

DeepSeek

  • 展示账户余额:总余额 / 赠送 / 充值。
  • 余额不可用时显示「余额不足」。

Command Code

  • 展示 5 小时 / 周 两个窗口的已用与上限。
  • 展示账户 剩余额度。

刷新与可见性

  • 小组件约 每 60 秒 向宿主路由拉取一次展示数据。
  • 各分区上游结果在宿主侧 缓存 120 秒;失败后 30 秒内不重试。
  • 仅当当前选中模型属于某分区配置的 providers 路由集合时,该分区相关 UI 才会出现;自定义路由名需写入对应分区的 providers。

安装与启用

DSH Ready GUI(推荐)

插件随 GUI 内置:打开 GUI → 设置窗口 →「第三方插件」勾选 模型余量,安装完成后按提示 刷新页面(插件包含页面侧组件)。

其它 DSH 宿主(dsh web / CLI)

任选一条命令安装(均包含 cordis.patch.yml,装完无需额外配置):

# 推荐:直接从 GitHub 装
dsh plugin --profile web add github:itchenshi/dsh-model-surplus

# 备选:从 Release tarball 装(示例版本 v0.4.6)
dsh plugin --profile web add https://github.com/itchenshi/dsh-model-surplus/releases/download/v0.4.6/dsh-model-surplus-0.4.6.tgz

本包 不在 npm registry(registry.npmjs.org 无此包),只能使用上述方式或 GUI 内置项。

安装后 重启引擎并刷新页面,小组件才会出现在会话标题右侧。

凭据与配置

默认凭据引用

分区 默认凭据引用
OpenCode Go OPENCODE_GO_API_KEY
Command Code COMMANDCODE_GOAT_API_KEY
DeepSeek DEEPSEEK_API_KEY

宿主启动时若插件已加载,日志中会出现类似 [model-usage] active (opencode-go: providers=opencode-go|opencode key=OPENCODE_GO_API_KEY; ...) 的行;没有该行说明插件未加载。

cordis.patch.yml(id: model-usage 的 config,均可选)

键 默认 说明
enabled true false 时整个插件直接返回
opencodeGo.baseUrl https://opencode.ai/zen/go/v1 上游根地址
opencodeGo.apiKeyRef OPENCODE_GO_API_KEY 凭据引用名
opencodeGo.providers [opencode-go, opencode] 视为 OpenCode Go 的路由
deepseek.baseUrl https://api.deepseek.com 上游根地址
deepseek.apiKeyRef DEEPSEEK_API_KEY 凭据引用名
deepseek.providers [deepseek-official] 视为 DeepSeek 的路由
commandcode.baseUrl https://api.commandcode.ai 额度接口根地址;写聊天地址 .../provider/v1 也认
commandcode.apiKeyRef COMMANDCODE_GOAT_API_KEY 凭据引用名
commandcode.providers [commandcode-goat, commandcode] 视为 Command Code 的路由

顶层直接写 baseUrl / apiKeyRef / providers 时,仍按 opencodeGo 分区解读(插件早期仅支持 OpenCode Go)。

OpenCode Go 单模型月度上限:插件从 https://opencode.ai/docs/zh-cn/go/ 抓取并缓存在 <DSH_HOME>/logs/model-surplus-limits.json,每 24 小时刷新;失败时回退缓存或内置表。

典型用法

  1. 在 DSH 凭据服务中配置你实际使用的分区密钥(至少一个即可)。
  2. 按上文方式安装插件,重启引擎并刷新 Web 页面。
  3. 在会话里 选中 属于 OpenCode Go、DeepSeek 或 Command Code 的路由模型,观察标题右侧小组件;切换到不受跟踪的路由时组件会隐藏。
  4. 若显示 no key,检查对应分区的 apiKeyRef 与宿主中的密钥是否一致;若看不到组件,检查当前模型是否在对应 providers 列表中。

适用场景与注意

适合:长期在 DSH Web 界面调试多上游模型、需要在同屏查看套餐用量或 DeepSeek 余额的开发者。

环境与兼容(以仓库 package.json 为准):

  • DSH >= 0.1.5-rc.2(清单标注与 0.1.5-rc.2、0.2.0-rc.2 兼容)。
  • Node >= 20。
  • 更早引擎版本未测试;各分区可独立降级。

安全与信任:插件以 当前 DSH 进程权限 运行,并代表你向配置的上游发起请求。安装前请阅读 GitHub 源码 与 MIT 许可证,确认凭据引用与 baseUrl 符合你的部署策略。DSH 社区插件目录(如 SkillHub 目录页)为独立生态站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-model-surplus 把 OpenCode Go 窗口用量、Command Code 额度与 DeepSeek 余额收敛到会话标题旁,且随当前模型切换,减少在多站点之间核对额度的次数。进一步了解可访问目录页 itchenshi/dsh-model-surplus 与仓库 github.com/itchenshi/dsh-model-surplus。

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

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

小夜