meow-cachebilling:把实时账单装进上下文圆环的 DSH 插件

前言

用 DSH 跑长上下文任务时,缓存命中率往往很漂亮,但总花费并不会因此停下:上下文越长,每一步请求里带着的缓存 token 越多,账单也就越滚越大。「缓存命中率 100% 却越用越贵」说的就是这种情况。光知道 token 用量不够,还得知道这些 token 折成钱是多少,才好判断什么时候该开新会话、什么时候该压缩上下文。

下面介绍 meow-cachebilling(喵账单),一个把实时账单放进上下文圆环弹层的 DSH web 插件。

这是什么

meow-cachebilling 是由 Phant0Meow 维护的 DSH 插件,MIT 许可证。它在输入框右侧上下文圆环的弹层底部渲染一张无边框小账表:一步、一轮、会话三行,每行带总价独立一列,右侧三列是缓存命中、缓存未命中、输出明细。账单与「上下文用了多少」同屏对看,token 和钱在一处对照。

核心功能

三级账单一表收

当前每次 API 请求(一步)、当前轮、会话累计合并成一张无边框小表。首列是「一步 / 一轮 / 会话」行标签,总价独立一列,右侧三列分别是缓存命中、缓存未命中、输出明细,一览即比。

峰谷计价自动判定

北京时间工作日 09:00–12:00 / 14:00–18:00 按峰价,其余时段及周六日全天按谷价。判定是纯事件时刻换算,与系统时区无关。峰谷标注写在模型信息行:DeepSeek 官方路由标「梁文峰/梁文谷」,其他路由写「峰价/谷价」,一口价条目不标注。

第三方中转也认

官方路由按刊例价精确计价。第三方中转只要在响应里报用量就照样记账:模型名命中价目表按刊例价计(峰谷或一口价),未命中按 flash 价估算并在账单里标明。注意第三方的费率是本地估算,实际扣费以你的账单为准。

价目表可视化编辑

设置页新增独立「喵缓存账单」标签页(与「通用」「模型」平级),可以添加、修改、恢复预填,改完即时生效,无需重启。包根的 rates.yml 是预填层,改它才需要重启 dsh web。条目写坏会自动跳过并警告,不会弄崩 DSH。

模型分价

V4 Flash / V4 Pro / V4 Flash Vision Exp 单价不同,按每步实际使用的模型计。

两个按步计数

会话累计按各笔事件时刻的峰谷费率逐笔累加,跨轮不比价。另有两个按步计数:「缓存失效次数」指该步 API 返回了缓存写入 token(写入即前缀变更、旧缓存作废);「完全失效次数」指该步有输入但缓存命中为 0。官方 API 不报缓存写入 token,「缓存失效次数」仅部分中转可计;全新会话第一轮没有缓存可命中,会如实显示金额并计入「完全失效次数」,属正常现象。

金额精度自适应

小于 0.01 的金额四舍五入保留一位有效数字,0.005、0.0003 这类零头一眼可见;大于等于 0.01 的四舍五入到分。

平均累计花费曲线

插件为每个会话留存每一步的真实花费,按「供应商/模型/峰谷」聚合最近 30 天会话的平均累计花费曲线,并在同一张图里画出本会话的实际累计花费。对照曲线斜率,可以直观看出本会话的花费增速与历史平均的差异。

右栏数据两节

曲线图缩在左半边,右半边两节数据:「消耗比较」包含读代码、缓存、缓存失效;「缓存」包含完全失效次数、缓存时间估算与现在失效可能(后者为占位待实现)。桌面端悬停标签各有解释,触屏设备同样显示,只是没有悬停解释。

安装与启用

安装命令:

dsh plugin --profile web add github:Phant0Meow/dsh-meow-cachebilling

安装即生效:安装时自动编译(包内含 prepare 脚本)、自动挂载,重启 dsh web 后启用,无需任何配置。

一个已知的坑:pnpm ≥10 默认会阻止安装期的构建脚本,首次 add 可能失败并提示 allowBuilds。按提示把输出的键加进 profile 的 pnpm-workspace.yaml 后重跑即可。

卸载命令:

dsh plugin --profile web remove meow-cachebilling

重启 dsh web 后不再加载。

典型用法

1、查看账单:点开输入框右侧的上下文圆环,弹层底部就是账单。

2、自定义价目表:先在设置页「喵缓存账单」标签页添加、修改或恢复预填,改完即时生效;要改预填层,就修改包根 rates.yml,峰谷条目用 days × ranges 叉乘,一口价用 const,时区用 IANA 名,改后重启 dsh web

内置价目表为 2026-08-17 官方刊例(元 / 百万 token):

模型 峰(命中 / 未命中 / 输出) 谷(命中 / 未命中 / 输出)
deepseek-v4-flash 0.1 / 3 / 9 0.05 / 1.5 / 4.5
deepseek-v4-pro 0.3 / 9 / 27 0.15 / 4.5 / 13.5

数据口径与说明

  • 账目只认 usage 的 input / cacheRead / cacheWrite / output 四类 token。
  • 每步花费历史存于 DSH 官方存储层(meow_cachebilling.json),曲线随会话越攒越准,旧会话再次活动时按当前价目表回填。
  • 三级账单与缓存失效次数统计来自 better-er 的大幅重写(PR #2),对非 DeepSeek 官方 API 的显示支持也来自其改动。
  • 如果你想 fork 改代码,注意 lib/client.js 的 factory 必须以 return module.exports 结尾,否则模块导出为 undefined,DSH 启动即 fail-loud。

适用场景与注意

适合这几类使用者:

1、长上下文、多轮任务跑得多,想知道每一步、每一轮、整个会话实际花多少钱的人;
2、用第三方中转,想要一份本地账目做参照的人;
3、关心峰谷价差,想按事件时刻的费率逐笔对账的人。

注意:插件以当前 dsh 进程的权限运行,安装前建议先检查源码与许可证(本项目为 MIT)。rates.yml 是预填层,随版本更新;你在设置页的修改是独立一层,即时生效。

结尾

meow-cachebilling 把「缓存命中率」翻译成「这一步到底花了多少钱」,账单就住在上下文圆环的弹层里,看上下文用量的同时顺手对账。DSH 的理念是一切皆插件,计费这类能力同样由社区插件补齐。

  • 插件目录页:https://www.skillhub.cn/plugins/Phant0Meow/dsh-meow-cachebilling (社区独立目录,与 DeepSeek / 幻方无官方从属关系)
  • GitHub 仓库:https://github.com/Phant0Meow/dsh-meow-cachebilling
羽毛球分组比赛记分
小程序二维码

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

小夜