dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek API balance, conversation token usage, and CNY cost estimation for DeepSeek Harness (DSH)
一个独立的 DeepSeek Harness Web 插件,在左侧栏底部显示 DeepSeek 官方 API 余额,并在对话输入区和设置页显示 Harness 已记录的 Token 用量与估算费用。
dsh plugin 只是把参数转发给 profile 目录里的 pnpm,所以本地目录和 Git 仓库都能装。
从 GitHub 安装:
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add github:HFUT-zhengjiahao/dsh-balance
或用本地克隆:
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-balance
仓库里不含任何 API Key:余额查询走 Harness 已保存的 DEEPSEEK_API_KEY 凭据。
然后重启 Web 服务。Host 与浏览器两半都是在 Web 服务启动时读取的,因此改动任一半后都需要重启 dsh web——只刷新页面不够,设置段落的值也只在注册时解析一次。
Host 使用 Harness 已保存的 DEEPSEEK_API_KEY 调用官方 GET /user/balance。
浏览器只收到币种、余额、可用状态和更新时间,不会收到 API Key。
首次加载和手动刷新立即查询,后台每 60 秒刷新一次,页面重新获得焦点时也会刷新。
支持 CNY、USD 等 balance_infos 币种;CNY 优先显示,其余币种显示在下方。
收起侧栏时不占用 56px 图标栏,展开侧栏后显示完整余额卡,避免与进程控制按钮争夺空间。
接口暂时不可用时保留上一次成功值,并显示“数据过期”。
对话输入区显示当前对话累计 Token、费用和使用的模型;费用只读取 assistant/chunk / assistant/message 已记录的 usage,最终消息会替换同一步的流式样本,不重复计费。
设置页的“用量与价格”支持今天、7 天、30 天和自定义日期范围,按模型查看用量,并查看每个已产生用量的会话。
费用按人民币展示。费率保存的就是官方价格表上的人民币价(CNY / 1M tokens),不经过汇率折算;设置页仍可切换成美元,届时按“1 USD = ¥”汇率把人民币价折算过去。
设置页的“价格”可以单独调整每个模型的缓存命中/未命中输入/输出费率,并用“恢复官方默认”回到内置的官方费率。官方来源为 https://api-docs.deepseek.com/quick_start/pricing/。
内置费率核验于 2026-09-13,对应 2026-09-10 12:00(北京时间)生效的 Flash 系列调价:
| 模型 | 缓存命中 | 未命中输入 | 输出 |
|---|---|---|---|
deepseek-flash(DeepSeek-V4.1-Flash) | ¥0.02 / ¥0.04 | ¥1 / ¥2 | ¥4 / ¥8 |
deepseek-v4-pro(DeepSeek-V4-Pro-0813) | ¥0.15 / ¥0.30 | ¥4.5 / ¥9 | ¥13.5 / ¥27 |
高峰时段为 UTC 周一至周五 01:00–04:00 与 06:00–10:00,其余时间为空闲时段,高峰价是空闲价的两倍。
deepseek-v4-flash、deepseek-v4-flash-vision-exp 与内测模型 deepseek-v4.1-flash-expires-on-0910 已不在官方价格表内(前两者已退役、请求由 V4.1-Flash 承接,内测模型 2026-09-10 到期)。这些模型名不再单独定价,仍出现在历史会话里的旧用量会显示为“未定价”,不计入合计费用;旧版配置留下的这些行会在读取时被忽略。
插件没有工具、模型 schema、system prompt、prompt section 或自定义 session event,不会增加模型 token;dsh-balance/usage 只是 Harness session projection 的读侧统计。
已落盘但当前不在内存里的会话按 sessionProjectionCache.coldSnapshot(header, inheritedEventCount, events) 读取:日志由插件自己通过 sessionPersistence.open(id, 'read') 读出来,因为该缓存服务不访问持久层。单个会话日志读取失败只会被单独列出(界面显示“日志读取失败”),不会让整段时间范围的汇总失败。
官方调价后需要同时改两处,它们必须一致:
index.js 的 DEFAULT_PRICE_SETTINGS.models(Host 实际计价用的表,以及设置页“恢复官方默认”的基准)。client.js 的 DEFAULT_MODELS(“恢复官方默认”写回用户设置时用的表)。同时把 PRICING_CHECKED_AT 与设置页里 pricingCheckedAt 的兜底日期改成核验当天。
内置表只覆盖官方价格表上现役的模型路由;只要 models 里查不到某条路由,Host 就会退回内置表,因此旧配置里遗留的历史行不会让现役模型算成 0 元。反过来,未列入内置表的第三方模型需要在设置页里手填费率,否则会显示“未定价”。
settings.yaml 里的 dsh-balance.models 只存用户覆盖项:它为空对象时就是在使用内置的官方表,currency 与 usdToCny 仍按正常设置读写。这样官方再次调价时,只要更新上面两张表并重启,存量配置会自动跟上,不需要用户重新保存一次价格;在设置页点“保存价格”或“恢复官方默认”则会把当前费率固化进这个字段。已退役的路由(RETIRED_MODEL_ROUTES)即使被写进这个字段也不会生效。
0.3.1:修复设置页“用量与价格”读取失败——coldSnapshot 是按 (header, inheritedEventCount, events) 三参数调用的,旧代码只传了 session id,于是 SessionLogOffset 收到 undefined 并抛错(界面显示 SessionLogOffset must be a non-negative safe integer, got undefined),所有区间汇总都会失败。现在插件自己用 sessionPersistence.open(id, 'read') 读出完整日志再交给缓存。0.3.0:价格表改用官方人民币价,基准路由从 deepseek-v4-flash 更正为现役的 deepseek-flash(这正是此前用量显示“未定价”、费用算不出来的原因);deepseek-v4-pro 由旧美元价更新为官方人民币价;三个已退役模型名不再定价;默认展示货币改为人民币。Host 计价多了一层内置表兜底。0.2.0:加入 Token 用量与费用估算、设置页“用量与价格”。0.1.0:侧栏余额卡片。pnpm dsh plugin --profile web remove dsh-balance