dsh-session-rate-cards:在 DSH Web 里实时看当前会话的人民币 token 费用

前言

用 DeepSeek Harness(DSH)跑长会话时,token 会随每条 assistant 回复累积,但 Web 界面默认不会把「这一会话已经花了多少人民币」摆在输入框旁边。要自己心算或事后对账单,既慢也容易漏掉缓存命中、峰谷差价和多模型混用的情况。社区插件 dsh-session-rate-cards(维护者 hgrh6268-lgtm)在 composer 输入框下方注入实时费用读数,并按每条消息实际模型的单价与消息时间所在的峰谷时段计价;同时在设置里提供可编辑的模型价格表。下面介绍它的定位、安装方式与计价规则。

这是什么

dsh-session-rate-cards 是 DSH 的客户端(Web)插件(目录分类:客户端)。它在 Web GUI 输入框下方显示当前会话累计的 人民币(CNY) 费用,依据是每条 assistant/message 回报的真实 token 用量,而不是全局均价。鼠标悬停可查看输入、缓存命中、缓存写入、输出、最近使用的模型以及当前峰谷时段等明细。

在 Settings → 会话费用 中还可以维护「价格卡」:内置模型与自定义模型并列展示,支持改价、恢复默认、为新的模型 ID 新增一行定价。自定义价格保存在本机 $DSH_HOME/storages/session-cost/pricing.json,升级插件不会覆盖你已改过的价。

核心功能

实时会话费用读数

费用读数挂在 conversation.composer.dock(元素 id session-cost)。插件 Host 端通过 sessionCost projection 折叠会话里的 assistant/message、assistant/attempt、llm/retry-started 等事件:

  • 每条消息按该条 source.model 对应的价格卡计价。
  • 同一步骤的重试或重复结算会替换而不是重复累加。
  • 失败但仍回报了 usage 的 assistant/attempt 也会计入。
  • 只统计模型 token,不包含 Search / Fetch 等按次费用。

峰谷时段与分项计价

单价口径对齐 DeepSeek 官方定价说明,单位为 元 / 百万 tokens。

  • 高峰期:北京时间周一至周五 09:00–12:00、14:00–18:00(UTC 01:00–04:00、06:00–10:00)。
  • 低谷期:其余时间(含周末)。中国法定节假日未单独建模,节假日当天仍按周一至周五的时段规则判断。

输入(缓存未命中)、缓存命中、输出分别计价;缓存写入按未命中输入的单价计费(官方未单独公布缓存写入价)。每条消息按该消息时间戳所在窗口选用高峰或低谷单价。

内置模型价格(每百万 tokens)

模型 输入(缓存未命中) 输入(缓存命中) 输出
deepseek-flash(含 v4-flash / v4.1-flash 等别名) 高峰 2 / 低谷 1 高峰 0.04 / 低谷 0.02 高峰 8 / 低谷 4
deepseek-v4-pro 高峰 9 / 低谷 4.5 高峰 0.30 / 低谷 0.15 高峰 27 / 低谷 13.5

内置价定义在插件的 pricing.js;你在设置里改的价只写入 pricing.json 作为覆盖项,删除该文件即可回到全部内置价。

未定价模型与 ~ 标记

计价按模型 id 查表,不是按会话平均价。价格表里没有的模型会暂按 Flash 价估算,读数前会出现 ~;悬停提示会列出未定价的具体 id。设置页会把这些 id 收进「已出现但未定价」,点选后可填入新增表单。插件不会自动抓取官网 HTML 更新价格(避免页面改版后静默算错),策略是「明确价格表 + 未定价显式标记」。

设置面板与 API

Settings → 会话费用(settings.section,order 60)中每一行对应一个模型,六项价格为「高峰期 / 低谷期 × 输入未命中 / 缓存命中 / 输出」。保存后价格表重新注册 projection,stateVersion 随价格指纹变化,旧缓存失效;当前会话在下一次读取或下一条回复时按新价重算。

Host 端还提供 /plugins/session-cost/pricing 读写接口(见 index.js)。

安装与启用

要求 DSH 版本 >=0.2.1-rc.2(见插件 package.json 的 engines.dsh)。当前插件版本 1.0.1,许可证 MIT。

在已配置 Web profile 的环境里执行:

dsh plugin --profile web add dsh-session-rate-cards

装完后刷新浏览器页面即可生效。客户端会立即注入,不需要重启 dsh web。

典型用法

  1. 安装并刷新 Web GUI,在 composer 输入框下方查看当前会话累计 CNY 费用。
  2. 将鼠标悬停在费用读数上,核对输入、缓存命中、缓存写入、输出及最近模型、当前峰谷窗口。
  3. 若某模型显示带 ~ 的估算值,打开 Settings → 会话费用,在「已出现但未定价」中选模型 id,填写六项价格后「添加」;添加后会话按新价重算,~ 消失。
  4. 若改错了内置模型价格,对该行使用「恢复默认」,或删除 $DSH_HOME/storages/session-cost/pricing.json 一次性回到全部内置价。

适用场景与注意

适合:长期在 DSH Web 里调试 agent、混用 Flash 与 Pro、或依赖缓存的会话,需要在输入框旁持续看到「这一会话大概花了多少人民币」,并愿意按官方峰谷规则自己维护扩展模型的价格卡。

注意:

  • DSH 生态强调「一切皆插件」;SkillHub 目录页 是社区站点,与 DeepSeek / 幻方无官方从属关系。
  • 插件以当前 dsh 进程权限 运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的环境策略。
  • 费用仅为模型 token 估算,不含 Search / Fetch;节假日峰谷未单独建模;未定价模型会按 Flash 价并标 ~。

结尾

dsh-session-rate-cards 把「按消息、按模型、按峰谷」的 CNY 会话成本放到 composer dock,并用可编辑价格表覆盖未知模型,适合需要边聊边看账单的 DSH Web 用户。

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

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

Xiaoye