turn-cost-footer:在 DSH 完成轮页脚显示本轮与今日人民币消耗

前言

在 DeepSeek Harness(DSH)里长时间跑会话时,模型每轮会消耗大量 token,但界面页脚通常只显示用量与时间,不直接给出按本地单价折算的人民币金额。若要对账或控制日预算,只能事后查日志或自行估算。社区插件 turn-cost-footer(仓库 qcy-good/turn-cost-footer)在每条助手回复完成后的页脚末尾追加「本轮真实消耗」与「今日累计」,数据来自本会话日志中的 TokenUsage,不调用计费或余额接口。

这是什么

turn-cost-footer 由维护者 qcy-good 发布,分类为客户端插件(Host + Client 双边),当前版本 0.1.0,许可证 MIT。它在已完成助手回复的页脚时间行后插入人民币角标,字号与页脚时间一致。插件独立实现成本表、存储与路由,不读取、不修改、也不依赖 dsh-whale-widget。

目录页:SkillHub — turn-cost-footer

页面上你会看到什么

完成一轮后,页脚在原有「用量 + 时间」之后追加成本信息,例如:

用量 3.7M tok 20:26 · 本轮 ¥0.12 · 今日 ¥3.41

用户消息没有对应页脚行,因此不会被注入。Host 侧尚未有真实用量时,Client 不显示金额(amount 为 null 时不编造数字)。

核心功能

  1. 数据源:Host 订阅 DSH 会话日志事件 session/event,处理 assistant/message(读取 data.usage)与 turn/end(结算)。
  2. 计价字段:inputTokens(未命中缓存)× cacheMiss,cacheReadTokens(命中缓存)× cacheHit,outputTokens × output;模型名来自 data.message.source.model,在本地 prices 表中按最长匹配子串选档。
  3. 峰谷:北京时间工作日 9–12、14–18 为峰时,单价乘以 peakMultiplier;可配置周末一律谷时价。
  4. 对外接口:仅注册只读路由 GET /turn-cost-footer/turn.json,供 Client 每秒轮询;不访问 DeepSeek 余额/账单、不读 credentials、不走 llm 服务。
  5. 持久化:最近一轮写入 $DSH_HOME/.turn-cost-footer.json(默认 ~/.dsh/.turn-cost-footer.json),刷新或重启后仍可回填最近一轮;子代理会话只计入今日累计,不顶掉当前会话页脚。

安装与启用

换机器安装时,README 给出的命令为:

# 从 GitHub 直接装(仓库推送之后)
dsh plugin --profile web add github:qcy-good/turn-cost-footer

也可将包放入 profile 的 node_modules 后通过插件管理器 plugin_manager install_bundle 安装。本机若已用 link: 指向开发目录,则视为已随 profile 装好。

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证。

配置

在 profile 的 cordis.patch.yml 中修改已安装行的 config:,或安装前改包内 cordis.patch.yml;改完重启 DSH,或停用/启用该插件行。

键 默认值 含义
enabled true 总开关
showToday true 是否显示今日累计
currency CNY 显示单位
peakHours [[9,12],[14,18]] 北京时间峰时区间
peakMultiplier 2 峰时单价倍率
weekendValley true 周末按谷时价
prices 见 patch 元/百万 token:cacheHit、cacheMiss、output
debug false 每轮结算时在 Host 控制台打印明细

官方调价时需手工同步 prices;金额是本地折算,不是账单接口返回值。

典型响应示例

Client 轮询到的 JSON 形态如下(摘自 README):

GET /turn-cost-footer/turn.json
{
  "ok": true, "seq": 3, "enabled": true, "showToday": true, "currency": "CNY",
  "turn": 50, "amount": 0.084, "tokens": 3025392, "model": "deepseek-flash",
  "ts": 1793974422671, "todayUsage": 0.1589
}

README 实测样例:turn 50,3,025,392 tok,模型 deepseek-flash → ¥0.0840。

适用场景与注意

适合:在 DSH Web 端日常对话、需要即时感知单轮与当日 token 成本(人民币)的开发者;希望与鲸鱼类插件解耦、仅依赖会话日志的场景。

限制(README 原文):

  • 刷新页面后只回填最近一轮;更早历史页脚不补金额。
  • 价格表为本地配置,需自行维护。
  • 无官方「每条消息」页脚插槽,Client 通过 DOM 注入;选择器集中在 SELECTORS,界面结构变化时需改插件。

Host 掉线或插件停用约两秒后,旧角标会自动移除。卸载时在插件管理器停用或移除本包即可,不改写应用其他文件。

结尾

turn-cost-footer 把会话日志里的真实 token 用量折成人民币,并贴回完成轮页脚,全程离线、只读自有路由。DSH 生态理念是「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

  • 目录页:https://www.skillhub.cn/plugins/qcy-good/turn-cost-footer
  • GitHub:https://github.com/qcy-good/turn-cost-footer
羽毛球分组比赛记分
小程序二维码

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

小夜