dsh-turn-cost:把每轮花费压成回复下方的一行灰字

前言

DSH 用久了,一次「继续」到底烧了多少钱,很容易失去感知。上下文一长,单轮的 token 量和花费就很难心算;dsh 本身有 token 用量面板,但要展开、要手算、还要自己记住今天是峰时还是谷时。维护者 inzia005 的 dsh-turn-cost 插件就是来做这件事的。

这是什么

dsh-turn-cost 是一个客户端 DSH 插件,维护者为 inzia005,当前版本 0.1.0,许可证 MIT。它在每条回复下面显示一行,内容为本轮花费、token 数、峰谷价,例如:

¥0.093 · 942k tok · 峰

鼠标悬停能看到明细,包含本轮 token、未命中输入、缓存命中率、输出、峰谷价、模型名,例如:

本轮 942k tok · 输入 4.9k · 缓存命中 931k(99%) · 输出 5.8k · 峰时价 · deepseek-flash

它解决的问题是「单轮成本不可见」:不需要展开用量面板,也不需要手算。

核心功能

下面介绍插件的记账口径,这是理解显示数字的关键。

项 谷时 峰时
缓存命中输入 ¥0.02 ¥0.04
未命中输入 ¥1 ¥2
输出 ¥4 ¥8
  • 峰时 = 北京时间「周一至周五 09:00–12:00、14:00–18:00」,其余时间(含周末)按谷时。
  • 缓存写入(cacheWriteTokens)按未命中输入价计,官方价目里没有单独的缓存写入档。
  • reasoningTokens 是 outputTokens 的一部分,不重复累加。
  • 模型名带 pro 的按 Flash 的 3 倍计价。
  • 内置的节假日判断只按周末简化,没有内置法定节假日表:遇到法定节假日会按工作日峰谷规则算,比实际略高一点。

安装与启用

README 给出的安装命令如下。第一条从 GitHub 安装,第二条从本地目录安装:

# 从 GitHub
dsh plugin --profile desktop add github:<你的用户名>/dsh-turn-cost

# 或本地目录
dsh plugin --profile desktop add /绝对路径/dsh-turn-cost

安装完成后需要重启桌面端,因为宿主半边要重新加载插件。

典型用法

装好并重启后,插件无需额外配置。对话过程中每条回复下方自动出现一行成本信息,鼠标悬停即可看到明细。安装完成后没有可写的配置文件,也没有手动命令需要执行。

工作原理

插件分两半。

  • 宿主半边 lib/index.js:订阅 session/event,把每个 (会话, 轮次) 的 assistant/message usage 累加起来(缓存读、未命中输入、缓存写、输出分开记),按轮次结束时间判断峰谷并换算成人民币,通过 GET /dsh-turn-cost/turn.json?turn=&seq= 暴露查询接口。用 seq 做首选键,避免两个会话恰好有同一轮次号时串账。
  • 浏览器半边 lib/client.js:往 conversation.chat.turnTail 槽位注册一个组件,每条回复下方渲染那一行字,数据全部来自上面的接口,不在浏览器里重复算价。

适用场景与注意

适合希望在对话流里直接看到单轮成本、而不是反复展开用量面板的开发者。需要注意几点:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。
  • 只统计插件加载之后发生的轮次,不回填历史对话。
  • 记录在内存里,进程重启就清空。
  • 判断峰谷用本机时钟换算 +8 小时的北京时间,不校验系统时区是否正确。
  • 隐私上只读 dsh 自己的会话事件里的 usage 数字,全部计算在本地,不联网、不上传、不写文件;路由只在本机 web server 上监听,不对外暴露。

结尾

dsh-turn-cost 的价值在于把单轮成本压缩成扫一眼就能读的一行,省掉展开面板和手算的步骤。目录页:https://www.skillhub.cn/plugins/inzia005/dsh-turn-cost,源码:https://github.com/inzia005/dsh-turn-cost。

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

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

小夜