dsh-usage-cost:在 DSH 用量弹窗里把 token 折算成金额

前言

在 DeepSeek Harness(DSH)里跑对话时,界面会给出 token 分项:未缓存输入、缓存读取、缓存写入、输出。这些数字能说明「用了多少」,但很难直接对应「花了多少钱」——尤其 DeepSeek 官方价目表还区分峰谷时段,同一桶 token 在不同时段单价不同。

若你已经在用社区挂件 dsh-whale-widget 做余额观测,会希望用量弹窗里的估算与挂件口径一致。下面介绍维护者 O789Real 发布的客户端插件 dsh-usage-cost:它在 DSH 自带的「用量」弹窗中,把每一行 token 右侧追加人民币金额,并在末尾增加合计行;价目与峰谷规则与 dsh-whale-widget 同源(DeepSeek 官方 CNY 价目表 + 峰谷价)。

这是什么

dsh-usage-cost 是标准 DSH bundle 插件(npm 包名 dsh-usage-cost,当前版本 0.2.0,MIT 许可证)。维护者在 DSH 0.2.0-rc.2(桌面端 / Web)上开发与验证;package.json 声明兼容 dsh 版本 >=0.2.0-0 <0.3.0-0。

插件分宿主半(lib/index.js:注册静态路由、向页面注入加载脚本)与浏览器半(assets/usage-cost.js:价目、峰谷、标注、回执)。它不读会话、不记账、不介入模型请求,只在官方已有 DOM 上追加节点,全局对所有会话自动生效,无需逐会话开关或额外按钮。

核心功能

覆盖的两个弹窗

  1. 每条回答下方「用量 xx」胶囊打开的 本轮用量 弹窗。
  2. 输入框下方 Token 用量 会话级胶囊打开的弹窗。

界面效果

在每行 token 数字右边显示对应金额,并在 dl 末尾追加「本轮费用」或会话级合计。示例(来自项目 README):

本轮用量                                        888,131 tok
─────────────────────────────────────────────────────────────
提供方 / 模型              deepseek-account/deepseek-flash
缓存命中                                            99.97%
未缓存输入                          296 tok  ¥0.000592
缓存读取                        886,912 tok  ¥0.0355
缓存写入                              0 tok  ¥0.00
输出                                923 tok  ¥0.007384
本轮费用                                    ¥0.0435(高峰价)

定价口径

  • 单价单位:元 / 百万 token,每类 token 为 [空闲价, 高峰价] 二元组。
  • 支持的模型价目(README 表格):
  • deepseek-flash(含旧名 deepseek-v4-flash 等):缓存命中 0.02 / 0.04,未命中 1 / 2,输出 4 / 8。
  • deepseek-v4-pro:缓存命中 0.15 / 0.30,未命中 4.5 / 9.0,输出 13.5 / 27.0。
  • 峰谷:北京时间周一至周五(不含法定节假日)9:00–12:00、14:00–18:00 为高峰;其余时段(含周末、调休上班的周末、法定节假日全天)按空闲价;高峰价 = 空闲价 × 2。
  • 本轮用量弹窗:峰谷按该轮实际发生时刻判定(从打开中的胶囊回溯到 [data-turn-tail],读取该轮动作行末尾时钟),不是按你点开弹窗的时刻。合计行会标注 (高峰价) / (谷价)。
  • 会话级 Token 用量合计跨多轮,无法归到单一时段,按当前时段单价估算,括注 (按当前时段价)。
  • 金额是本地估算,不是官方账单;与小鲸鱼挂件「每轮消耗」口径一致,真实消费仍以官方账单及挂件余额观测为准。

运行时特性

  • 使用 MutationObserver 与 1.5s 轮询兜底,官方重渲染后自动补回标注。
  • 仅使用 Node 内置模块,无运行时 npm 依赖;浏览器半为经典脚本(非 ES 模块)。

安装与启用

插件以当前 DSH 进程权限运行。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。

推荐:DSH CLI 一行安装

--profile 换成你的 profile 名(桌面端一般为 desktop,纯 Web 部署常见 web):

dsh plugin --profile desktop add dsh-usage-cost

也可在 DSH 设置 → 插件 中安装。本地开发可指向源码目录:

dsh plugin --profile desktop add link:/绝对路径/dsh-usage-cost

Windows:PowerShell 脚本

powershell -ExecutionPolicy Bypass -File .\install.ps1

卸载:

powershell -ExecutionPolicy Bypass -File .\uninstall.ps1

默认安装到 E:\deepseekharness\.dsh\profiles\desktop;换 profile 时使用 -ProfileDir "<路径>"。

装完如何生效

界面 操作
桌面端应用窗口 完全退出并重开 DeepSeek Harness(注入表在宿主启动时收集,无热刷新)。
浏览器访问 http://127.0.0.1:<port>/ 刷新页面(F5)即可。

仅修改 assets/usage-cost.js 时刷新页面即可;修改 lib/index.js 需重启 DSH。

典型用法与改价

安装并重启(或刷新)后,正常使用 DSH 对话即可:点击用量胶囊打开弹窗,金额会自动出现在 token 右侧。无需配置即可使用内置价目表。

若 DeepSeek 官方调价,可在 <DSH_HOME>/usage-cost-pricing.json 覆盖部分字段,无需重启或刷新,每次打开弹窗会读取最新值。示例:

{
  "currency": "¥",
  "models": {
    "deepseek-flash": { "hit": [0.02, 0.04], "miss": [1, 2], "out": [4, 8] },
    "my-gateway-model": { "hit": [0.1, 0.2], "miss": [2, 4], "out": [8, 16] }
  },
  "peakHours": [[9, 12], [14, 18]],
  "holidays": { "2027-01-01": 1 }
}

内置价目表位于 assets/usage-cost.js 顶部 @pricing-core 标记之间;官方调价时浏览器半与可选覆盖文件两处都需与 dsh-whale-widget 保持同步。每年 11 月国务院发布次年放假安排后,需补充节假日日期(插件内 HOLIDAY_VALLEY 与挂件侧均需更新)。

自检与排障

界面未出现金额时,可按 README 建议顺序检查:

  1. http://127.0.0.1:19387/dsh-usage-cost/health 是否返回 200(宿主半与路由)。
  2. 响应中 clientJsServed 是否大于 0(页面是否拿到客户端脚本)。
  3. http://127.0.0.1:19387/dsh-usage-cost/report 中的 census(弹窗与胶囊是否被脚本识别)。

其他诊断入口:/dsh-usage-cost/pricing.json(当前生效价目)、<DSH_HOME>/usage-cost-host.log、<DSH_HOME>/usage-cost-report.jsonl。仓库内可运行 npm test 做离线探针(语法、价目、假 DOM 标注行为)。

适用场景与注意

适合谁:在 DSH 里频繁查看 token 分项、希望就地看到人民币估算、且已与或计划配合 dsh-whale-widget 对数的开发者与用户。

边界(README「已知边界」):

  • 会话级合计仅为当前时段估算,界面已标明。
  • 主要识别中英文官方 locale 行标签;其他语言可能走文字兜底,存在标不出的情况。
  • 官方若大幅改动用量弹窗 DOM 或去掉轮次时钟,可能影响峰谷回溯或标注。
  • 插件目录(如 SkillHub 插件页)为社区收录,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,安装第三方 bundle 前请自行审阅代码。

结尾

dsh-usage-cost 把 DSH 自带用量弹窗从「纯 token 计数」扩展为「token + 按轮次峰谷的 CNY 估算」,并与 dsh-whale-widget 共用同一套官方价目与峰谷规则。若你需要在对话界面里直接对账每一轮的输入/输出成本,可先按上文命令安装,重启或刷新后即可在两种用量弹窗中看到金额。

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

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

小夜