前言¶
在 DeepSeek Harness(DSH)环境中,当同时使用多家供应商的模型时,需要知道当前供应商的剩余额度与本机调用统计,但侧栏默认不提供这些信息。手动去各个服务商的控制台或日志里翻阅既耗时又容易遗漏。dsh-model-usage 插件在侧栏底部常驻一个卡片,展示当前供应商的额度摘要,并打开一个双列详情弹窗,汇总本机用量与历史统计。
是什么¶
dsh-model-usage 是一个 DSH Web 插件,由维护者 Antecer 开发,使用 MIT 许可证。它在 DSH 侧栏底部展示模型供应商的额度与本机用量统计,支持多供应商自动识别、零配置凭据复用、峰谷时段提示与官方价格校验等功能。
核心功能¶
侧栏底部入口¶
插件在侧栏底部常驻一个卡片,跟随当前前台对话的供应商(新建对话时立即跟随 DSH 默认模型)。卡片展示供应商图标、名称与额度摘要。当没有识别结果时,展示状态最紧急的供应商。
账号菜单联动¶
当左下角账号菜单弹出时,侧栏卡片会自动隐藏;菜单关闭后恢复。这样可以避免卡片遮挡向上弹出的菜单。
冷启动首屏¶
插件会缓存上次的快照到 localStorage,在冷启动时立即回显(如果已过期则标明)。首次快照返回前先渲染骨架卡片。请求失败时自动退避重试,避免 DSH 冷启动后侧栏底部长时间空白。
峰谷时段提示¶
在 DeepSeek 官方供应商卡片上显示当前峰/谷时段与距下次切换的时长。工作日 9:00–12:00、14:00–18:00 为高峰,其余时段(含周末与法定节假日)为空闲。节假日表自动从 timor.tech 拉取。Host 侧每 12 小时校验一次官方价格表,发现配置不一致时会弹窗提醒。
双列详情弹窗¶
详情弹窗分为左右两列:左列是供应商卡片(可独立刷新),右列固定摘要与统计(限高 74vh,下半滚动)。
右栏固定摘要¶
右栏包含四张统计卡:今日、本周、本月、全部。此外还提供近 12 个月用量热力图,悬停时显示实测钳位提示。
四个统计分区¶
统计分区按以下顺序排列:会话统计 → 模型统计(行可展开每次调用)→ 渠道统计 → 历史统计(按日新到旧)。统一信息列显示调用次数 / 输入 tokens / 缓存 tokens / 输出 tokens。范围可选今日 / 本周 / 本月 / 全部(日历口径)。UI 偏好(范围与各分区展开态)通过 localStorage 持久化。
额度数据¶
额度数据来自服务商接口返回的真实值:剩余额度 / 余额 / 订阅窗口(按 5h → 日 → 周 → 月排列)。还会显示重置倒计时,并根据余量显示不同颜色:≥60% 蓝 / ≥30% 绿 / ≥5% 橘 / <5% 亮红。
GLM Coding Plan 额度重置¶
插件支持 GLM Coding Plan 额度重置(与 ZCode 客户端共享登录凭据)。5h/周窗口会显示「重置 N」按钮,点击弹出「可重置额度」弹窗(当前额度卡片 + 重置行),二次确认后核销。未登录 ZCode 时可内嵌 OAuth 登录并回写共享凭据。
sub2api 中继自动识别¶
插件从 DSH profile 读取供应商 baseURL 与凭据引用,自动探测 GET /v1/usage 接口,无需手动配置。
零配置凭据复用¶
查询模板按 profile 中的 baseURL 自动匹配(host 精确匹配)。凭据直接复用 provider 的 apiKeyEnv,多账号互不串号。credentials / adapters 只在需要覆盖默认行为时才配置。插件 Host 进程没有 profile 环境变量时,按当前 llm 路由命中数自动识别正在运行的 profile。
卡片摘要模板¶
卡片摘要可以通过 card.template 自定义排列。可用变量包括 {name}、{route}、{plan}、{remaining}、{limit}、{used}、{usedPct}、{window}、{leftPct}、{resetIn}、{balance}、{currency}。
安装与启用¶
要求¶
DSH 版本需满足 >= 0.2.0-rc.2 < 0.3.0。
从插件市场安装¶
- 打开「插件 → 实验性插件 → 更多 → 自定义插件市场」,启用后在「发现」里点「添加索引源」。
- 粘贴索引地址:
https://antecer.github.io/dsh-model-usage/index.json
- 搜索
Model Usage并安装。
从 npm 安装¶
dsh plugin --profile <profile> add @antecer/dsh-model-usage
从 Git 安装¶
dsh plugin --profile <profile> add "git+https://github.com/Antecer/dsh-model-usage.git#d90145bd58c63a47cb7d6b62c1a9ef1f4e6f957c"
从本地源码安装¶
dsh plugin --profile <profile> add link:/path/to/dsh-model-usage
安装后重启宿主并刷新页面。
改动生效方式¶
- 界面改动(
lib/client.js):刷新页面即可生效。 - Host 取数与账本逻辑(
lib/index.mjs、lib/adapters.mjs、lib/profile.mjs、lib/ledger.mjs、lib/zcode/*.mjs):在插件列表里重启本插件即可,无需重启整个应用。 - profile 配置(
cordis.patch.yml):插件侧 60 秒内自动感知;聊天侧的 provider 变更需重载宿主。
配置说明¶
在 cordis.patch.yml 中 model-usage 行的 config 下可配置以下字段:
| 键 | 默认值 | 说明 |
|---|---|---|
refreshSeconds |
60 | 额度刷新间隔(秒,最小 1) |
footer |
true | 是否显示侧栏底部入口 |
credentials |
{} |
按路由覆盖凭据引用(可选) |
adapters |
{} |
按路由显式指定查询模板(可选) |
sub2api |
{} |
按路由显式指定 sub2api 端点(可选) |
glm |
{} |
GLM 高级参数(可选) |
card.template |
"" |
卡片摘要模板字符串(可选) |
pricing |
官方默认值 | DeepSeek 峰谷规则与单价(可选) |
适配器自动识别¶
查询模板按以下优先级解析:adapters 显式指定 → profile 中 provider 的 baseURL 匹配内置模板(host 精确匹配)→ 内置路由名匹配 → sub2api 探测。内置模板覆盖 Kimi Coding、Moonshot、GLM Coding、DeepSeek、OpenRouter、MiniMax、OpenCode Go、小米 MiMo 等。
峰谷提示与官方价格校验¶
DeepSeek 官方计费规则内置在 pricing 配置里,默认值即当前官方价。节假日表来自 https://timor.tech/api/holiday/year/<年>。Host 侧每 12 小时抓取一次官方中文定价页并与 pricing 比对,发现差异时弹窗列出「配置值 → 官方值」。
卡片模板示例¶
config:
card:
template: "{name} 剩 {remaining}({window} {leftPct})"
数据口径¶
- 额度:服务商接口返回的真实值(剩余额度 / 余额 / 窗口已用百分比)。
- 本机用量:
assistant/message事件中服务商回传的 usage(input + cacheRead + cacheWrite + output;tokens = 四项合计,缓存 tokens = cacheRead + cacheWrite)。 - 统计维度:按供应商/模型(渠道、模型统计)、按会话(记录会话 id,标题经 sessions 服务实时解析)、按日(历史统计,新到旧)。
- 统计范围:今日 / 本周(周一起)/ 本月(1 号起)/ 全部。统计仅包含本机、插件启用后写入会话日志的调用。
- 账本文件:
$DSH_HOME/model-usage/ledger.json(按日聚合保留 180 天,热力图读取最近 364 天)。 - 不做金额估算:订阅套餐按套餐额度计费,金额以服务商账单为准。
安全¶
- API Key 只在 Host 内存中解析使用,不进入浏览器,任何 RPC 响应都不含密钥。
- 内置适配器只请求写死的服务商域名;sub2api 探测只访问 profile 中用户自己配置的供应商 baseURL。
- 错误信息脱敏(
sk-*/Bearer *等凭据形态会被打码)。 - 账本只存用量聚合数字,不含对话内容。
适用场景与注意¶
适合需要实时查看多家模型供应商剩余额度与本机调用统计的 DSH 用户。安装前建议检查源码与许可证(MIT)。插件以当前 DSH 进程权限运行,安装前应确认来源可靠。
总结¶
dsh-model-usage 在侧栏底部常驻显示模型供应商的额度与本机用量,提供峰谷提示、官方价格校验与零配置凭据复用等功能,适合在多供应商环境下快速掌握资源使用情况。
- 目录页:https://www.skillhub.cn/plugins/Antecer/dsh-model-usage
- GitHub:https://github.com/Antecer/dsh-model-usage