DSH 的界面通常显示 token 统计(如“71 步·257 tok/s”),但缺少“花费”这一项。dsh-turn-cost 通过注册一个只读的会话投影,读取 usage 事件,按价格表换算成人民币,在输入框下方和每轮回复尾部显示金额。
是什么¶
这是一个 DSH 客户端插件。它不修改 DSH 源码或样式,通过注入 turnCost 会话投影,从事件流中提取 token 消耗,结合价格配置计算金额。
核心功能¶
-
输入框下方统计药丸
在 DSH 原有的统计药丸中追加一个,显示累计花费。
文本形如:本轮 ¥0.42 · 本对话 ¥3.17。
悬停可查看详细的四个 token 桶数据。 -
每轮回复尾部徽章
在每个回合的动作条(与复制、点赞按钮同排)显示该轮花费。
文本形如:本轮 ¥0.42。 -
峰谷计价支持
读取账本配置中的peakEnabled、peakWindows等字段,支持按 UTC 时段区分峰谷价格。 -
内置兜底计价表
当无法读取dsh-cost-meter账本时,使用代码中硬编码的 DeepSeek deepseek-flash 档位作为兜底。
安装与启用¶
前提:Node.js ≥ 18,本地已安装 DSH。
- 克隆仓库
git clone https://github.com/CHIP-PHILO-GH/dsh-turn-cost
cd dsh-turn-cost
-
放置插件
将该目录作为插件放入 DSH 的 profile 插件目录,例如:
$env:DSH_HOME\profiles\node_modules\dsh-turn-cost
(未设置DSH_HOME时默认为~/.dsh) -
加载与重启
插件通过cordis.patch.yml自动注册 loader。安装后重启dsh web即可生效。重启后宿主端会打印一行自检日志:
[dsh-turn-cost] 已加载,计价:¥ 小数 4 位,汇率 7.2
配置项¶
插件没有独立的配置文件。它读取 DSH 的 dsh-cost-meter 账本配置。
配置路径:
<DSH_HOME>\storages\cost-meter\ledger.json
需要读取的字段(其余忽略):
| 键 | 类型 | 缺省值 | 说明 |
|---|---|---|---|
symbol |
string | ¥ |
金额前缀 |
decimals |
number | 4 |
显示小数位 |
exchangeRate |
number | 7.2 |
美元到人民币汇率 |
peakEnabled |
boolean | false |
峰谷计价开关(必须严格等于 true 才生效) |
peakEffectiveAt |
string | 无 | 峰谷生效时刻,交给 Date.parse 解析 |
peakWindows |
array | [] |
峰时段窗口,单位是 UTC 小时 |
prices.models |
object | {} |
模型 id → 单价记录 |
prices.default |
object | 兜底单价 | 模型未登记时使用 |
单价记录的字段:
- cacheHit:缓存命中价(缓存读取与写入均使用)
- cacheMiss:未命中输入价
- output:输出价
- offPeak / peak:可选,非峰/峰时段档位
注意:配置在插件加载时读取一次。修改账本后必须重启 dsh web 才能生效。
计价依据¶
计算公式(单位:美元 / 1M tokens):
美元成本 = (未缓存输入 × cacheMiss + 输出 × output + (缓存读取 + 缓存写入) × cacheHit) / 1,000,000
人民币 = 美元成本 × exchangeRate
当 ledger.json 不存在、读不了或格式不对时,插件不会报错,而是使用内置兜底表(对应 DeepSeek 官方 deepseek-flash 档):
- 缓存命中(含读写):0.0028
- 未命中输入:0.14
- 输出:0.28
适用场景与注意¶
- 估算而非账单:显示值是估算,价格依赖账本。如果账本价格与实际合同价不同,显示值可能不一致。
- 只统计四个桶:只统计 usage 的四个 token 桶,其他计费项不计入。
- 缓存写入按命中价:与
dsh-cost-meter对齐,缓存写入使用cacheHit价格。 - 插件权限:插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。
总结¶
dsh-turn-cost 通过简单的投影和 DOM 注入,解决了 DSH 缺少成本统计的痛点。它支持峰谷计价,并提供内置兜底,适合需要精细化控制单轮对话成本的 DSH 用户。
- 技能包目录:dsh-turn-cost
- GitHub 仓库:dsh-turn-cost