dsh-rub-cost:在对话 dock 用卢布显示当前会话成本

前言

DeepSeek Harness(DSH)在对话界面里自带 token 计数,但账单以美元计价、平台侧还有峰谷时段差异。若你习惯用卢布做日常预算,或需要把「这一会话大概花了多少」和内置 token 统计放在同一行里对照,就要自己查价目、查汇率、再心算一遍。

下面介绍社区客户端插件 dsh-rub-cost(npm 包名 @stmol/dsh-rub-cost):在 conversation.composer.dock 里、紧挨内置 token 计数器,显示当前会话的卢布成本;点击 pill 可展开详情卡片。

这是什么

  • 定位:DSH 客户端插件,在对话 dock 展示当前会话成本(卢布),并可选展开与内置「Token usage」风格一致的详情卡。
  • 维护者:Stmol。
  • 分类:客户端(注入 @deepseek-ai/dsh-client-ui-conversation,platform: web,immediately: true)。
  • 许可:MIT(见仓库 LICENSE)。

插件以你当前 DSH 进程的权限运行;安装前建议浏览源码与许可证。社区目录页:SkillHub — Stmol/dsh-rub-cost;源码:GitHub — Stmol/dsh-rub-cost。

界面与交互

安装成功后,dock 里会出现一个显示卢布金额的 pill(例如 0,56 ₽),与内置 token 计数相邻。

  1. pill 即按钮:单击打开详情卡片;再点一次 pill、点卡片外区域,或按 Escape 关闭。
  2. 峰谷提示:峰时段 pill 上的卢布数以琥珀色显示,与卡片内 tariff 行的警告色一致。
  3. 卡片内容(README 已列项):当前模型;当前 tariff 及切换倒计时;生效 tariff 下 API 价目(美元 / 1M output tokens);俄罗斯央行(CBR)USD/RUB 汇率及发布日期;含 subagent 的会话成本;无 cache 时的同会话成本及 cache 节省;DeepSeek Platform 钱包余额。会话成本本身以 pill 与卡片标题中的卢布数为准,卡片内不再重复美元总额。token 明细不在卡片内重复,因相邻已有「Token usage」单元格。

卢布金额统一保留两位小数;价目表在需要时会多保留一至两位以体现更细费率。

计费规则(插件如何算数)

公式与数据来源

cost = (uncachedInput + cacheWrite) × cacheMiss + cacheRead × cacheHit + output × output
  • Token 用量来自宿主 tokenUsage 投影;模型来自 modelSelection.lastUsed。插件不自行汇总 session journal。
  • 单价按 DeepSeek 官方美元价目(每 1M tokens),再按 CBR USD/RUB 汇率换算为卢布展示;账户实际扣款仍为美元。
  • 汇率从 CBR 镜像拉取并缓存在 localStorage:无网络时用上次已知汇率;既无网络又无缓存时,对应单元格显示破折号,原因在 tooltip 中说明。

峰谷时段

峰时费率约为谷时的两倍。规则按 北京时间 工作日定义:09:00–12:00、14:00–18:00 为 peak;周末全天 off-peak。卡片上打印的时钟窗口会随浏览器时区换算(例如 UTC+3 下常见为 04:00–07:00 与 09:00–13:00),但 计费规则本身始终按北京时间,因此同一时刻在不同地区打开,卢布总额一致;倒计时仅由该规则推导(周五下午可能显示跨至下周一的剩余时间,如 63h 00m)。

会话总额与子代理

pill 与卡片标题是 当前会话 的累计成本,不是账户总账单,也不是单次请求报价。Subagent 按各自路由计价并汇总到「Total with subagents」行;卡片打开时每 15 秒轮询子代理花费。若任一子节点无法读取,该行隐藏而非显示不完整数据。

安装与启用

包已发布到 npm: @stmol/dsh-rub-cost。DSH 支持 npm 包、Git 仓库、tarball 或本地目录作为 bundle 来源。

CLI(资料原文命令):

dsh plugin add @stmol/dsh-rub-cost

GUI:Settings → Plugins → Add plugin,填写 @stmol/dsh-rub-cost 或仓库地址 https://github.com/Stmol/dsh-rub-cost。

说明:package.json 的 name 须与 cordis.patch.yml 中的 name 及 client.js 里 factory id 一致,否则 bundle 无法构建。插件 不会自动更新;升级需先移除再重新添加。当前资料中 package 版本为 1.3.0。

本地改价或改汇率后需重装 bundle:在 UI 中移除并重新添加,或对插件目录执行 dsh plugin add <path-to-plugin-directory>。

典型用法

  1. 按上一节安装并重启或刷新 DSH Web 客户端(插件 immediately: true 注入对话 UI)。
  2. 正常发起对话;观察 dock 中 pill 随 token 使用更新。
  3. 单击 pill 查看模型、tariff 倒计时、价目、汇率、含/不含 subagent 成本、cache 对比与余额。
  4. 若在峰时段使用,留意 pill 与 tariff 行的琥珀色 peak 标注。

无需额外配置文件即可使用默认定价与 CBR 镜像;高级用户可编辑 client.js 顶部常量(见下一节)。

自定义价目与汇率

以下常量位于 client.js 文件顶部:

  • MODEL_PRICES:各模型单价
  • BILLING_CURRENCY
  • RATE_URL:CBR 汇率镜像地址
  • DEFAULT_OFFSET_MS:浏览器未报告时区时的时钟回退偏移(默认 UTC+3)

修改后须按「安装与启用」一节重新安装插件 bundle。

适用场景与已知限制

适合谁

  • 需要在 DSH 对话界面一眼看到 当前会话卢布成本 的开发者或重度用户。
  • 已使用 DeepSeek Platform 钱包、希望在同屏对照余额与 cache 节省的用户。
  • 接受「展示价按当前 tariff 重算整段会话」这一简化模型、用于估算而非逐笔对账的场景。

务必知晓的限制(README 原文要点)

  1. 中国法定节假日未建模:插件只用「北京工作日 + 峰窗」的年无关规则;法定假日的工作日会被当成 peak 日计价,而 DeepSeek 实际按 off-peak 计费,故假日当天显示金额与倒计时可能偏高,直至假期结束。官方日期以国务院每年 11 月通知为准,客户端 deliberately 不内置逐年表。
  2. 卢布总额非逐请求相加:整段会话按 卡片渲染时刻 的 tariff 重定价;峰谷切换时即使无新 token,显示金额也可能翻倍或减半。tariff 行与倒计时描述的是「当前生效」规则。
  3. 模型切换:tokenUsage 为整会话合计且无 per-route 拆分,会话中途换模型后,估算统一按 最后使用的模型。
  4. Cache write:按 cache miss 费率计;DeepSeek 未单独公布 write 价,且在 DeepSeek 路由上该计数常为 0。
  5. Subagent:各用自身最后模型与当前 tariff;尚未选路由的子节点回退到父会话模型。
  6. 余额请求:固定 x-client-version,版本写死在 client.js,DSH 升级后需手动改代码并 reinstall。
  7. 时区:时钟来自浏览器,非账户资料(remote.account.getProfile 无 timezone);浏览器无时区时用 DEFAULT_OFFSET_MS。

结尾

dsh-rub-cost 把「当前会话花了多少卢布」放进对话 dock,与内置 token 统计并列,并在一层卡片里集中展示 tariff、价目、CBR 汇率、subagent 汇总与钱包余额。安装命令为 dsh plugin add @stmol/dsh-rub-cost;细节与限制以仓库 README 为准。

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

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

Xiaoye