前言¶
如果你在用 DeepSeek Harness (DSH) 的 Web GUI 跑会话,应该遇到过这个问题:会话统计行能告诉你用了多少 token,但折成人民币是多少、账户还剩多少余额,界面上没有。要弄清楚只能切去 platform.deepseek.com/usage 查账单,而官方账单本身还有几分钟的结算延迟,长会话跑到一半想估算成本并不方便。
DSH 的理念是「一切皆插件」,这类读数正好可以做成一个 dock 条目。下面介绍的 ljcscp/dsh-session-cost 做的就是这件事:把 DeepSeek 账户余额和当前会话的估算花费直接显示在 Web GUI 里。
这是什么¶
ljcscp/dsh-session-cost 是一个面向 DSH Web GUI 的插件,MIT 许可证,当前版本 0.1.0。它在 composer dock 的会话统计行下方显示一行读数:
本会话 ¥0.90 · 余额 ¥30.82
悬停可以查看明细:输入 / 缓存读 / 输出 token、会话所用模型、定价来源,以及余额构成(granted + topped up)。
核心功能¶
账户余额:查询官方 GET /user/balance 接口。API key 保留在 host 端,每次刷新时通过 DSH credentials seam 解析,不会下发到浏览器。
会话花费:token 用量 × 官方 DeepSeek 价格。价格每 6 小时自动从官方定价页抓取一次,价格变动不需要更新插件。
峰谷定价:自动应用 2026-08-17 上线的峰谷时段——北京时间 09:00-12:00 / 14:00-18:00 为峰时,谷时半价。插件按当前北京时间所处的小时套用对应价格档。
按模型计价:从最新 assistant 消息的 provenance 读取会话实际使用的模型(deepseek-v4-flash / deepseek-v4-pro),按各自的价格档计费。
计费公式与官方规则一致(扣减费用 = token 消耗量 × 模型单价):
spend = uncachedInput × inputPerMillion
+ cacheRead × cacheReadPerMillion
+ output × outputPerMillion (per 1M tokens)
缓存写入按未缓存输入价计费,因为 DeepSeek 只报告 hit/miss 两类用量桶。
安装与启用¶
前置条件有两条:
1、DeepSeek Harness 0.1.0-rc.5 或更新版本(web profile);
2、通过 DSH credentials seam 存储的 DeepSeek API key(DEEPSEEK_API_KEY,由 web Models 页面写入)。
安装支持三种方式,任选其一。
从 git URL(不需要 npm 账号):
dsh plugin --profile web add https://github.com/ljcscp/dsh-session-cost
从 npm:
dsh plugin --profile web add @ljcscp/dsh-session-cost
从本地检出(开发用):
git clone https://github.com/ljcscp/dsh-session-cost.git
dsh plugin --profile web add link:$(pwd)/dsh-session-cost
安装后重启 dsh web 并刷新页面,读数就会出现在 composer dock 中会话统计行下方。默认零配置,开箱即用。
可选配置¶
默认零配置。如果需要调整行为,可以在组合配置里加一段:
- insert:
- id: session-cost
name: '@ljcscp/dsh-session-cost'
config:
refreshMs: 60000
pricingRefreshHours: 6
apiKeyEnv: DEEPSEEK_API_KEY
baseURL: https://api.deepseek.com
各配置项的含义:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
refreshMs |
number |
60000 |
余额缓存生命周期(ms),失败后 10 秒重试 |
pricingRefreshHours |
number |
6 |
官方定价页刷新间隔(小时) |
apiKeyEnv |
string |
DEEPSEEK_API_KEY |
存储 DeepSeek API key 的凭据引用 |
baseURL |
string |
https://api.deepseek.com |
接口基址,插件会在其后拼接 /user/balance |
trustedHosts |
string[] |
[] |
在信任围栏之外提供服务的非回环主机 |
工作方式¶
插件分成两端:
Host 端(src/index.ts)注册一个受信 webserver 路由 /session-cost,提供余额快照(缓存 refreshMs)和生效定价快照(按 pricingRefreshHours 解析官方定价页,峰谷时段生效后按当前北京时间小时套用)。API key 始终不离开 host。
浏览器端(src/client/)是一个 conversation.composer.dock 条目,读取 tokenUsage projection,从最新 assistant 消息的 provenance 检测会话模型,套用生效价格档并渲染读数,每分钟刷新一次。
适用场景与注意¶
适合这几类使用者:
- 在 DSH Web GUI 里跑长会话,想随时掌握成本的人;
- 同时使用 deepseek-v4-flash 和 deepseek-v4-pro,想确认每次实际按哪个价格档计费的人;
- 希望峰谷定价、官方调价自动生效,不想手动维护价格表的人。
使用前有几点需要知道:
- 读数是按官方价格计算的估算值;platform.deepseek.com/usage 上的官方账单有几分钟结算延迟,两边数字可能短暂对不上。
trustedHosts(默认[])用于配置在信任围栏之外提供服务的非回环主机,默认部署不需要动它。- 插件以当前 dsh 进程的权限运行,安装前建议先检查源码与许可证。本项目为 MIT;浏览器打包构建预设(
shared/)改编自 dsh-balance-meter(BSD-3-Clause),后者改编自 deepseek-harness(MIT)。 - 如果要本地开发或从源码构建:Node 引擎要求
^22.19.0 || >=24.0.0,包管理器为pnpm@11.7.0。
经过上面的步骤,插件就能在 composer dock 里持续给出余额与会话花费读数,不需要再切出去查账单。
结尾¶
dsh-session-cost 解决的是一个小而具体的问题:让成本信息直接出现在你会话的界面上,余额走官方接口,价格跟官方定价页自动同步,峰谷时段和模型档位自动套用。
项目地址:
- GitHub:https://github.com/ljcscp/dsh-session-cost
- 社区目录页:https://www.skillhub.cn/plugins/ljcscp/dsh-session-cost
社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,仅作索引使用。