dsh-turn-cost-pill:把「上一轮花了多少钱」放进输入框旁边

前言

用 DSH 做智能体开发时,一轮任务可能跑多个步骤、发多次模型请求。想知道「刚刚这轮到底花了多少钱」,通常得翻会话日志、把每一次请求的 usage 拿出来手动算,再对照价目表折算。这个插件解决的就是这件事:把最新一次交互的人民币花费直接显示在输入框「权限」按钮右侧。

插件由 ly13277 维护,源码仓库 ly13277/DshRmbCostPer1Talk,分类属于模型推理,仓库包名是 dsh-turn-cost-pill。表意很直白:这一轮(自你最后一次发消息起)最新一次交互,一共花了多少钱。

显示状态:本轮与上次

一轮跑完后,胶囊显示「上次 ¥0.0123」;这一轮还在跑时显示「本轮 ¥0.0041」,并带绿色小圆点,金额随每一步请求结算实时增长。也就是说不需要等整轮结束就能看到累计花费。

鼠标悬停还能看到明细:未缓存输入、缓存命中、输出的 token 数,以及实际使用的模型。

数据来源与计价口径

这个插件不自己发起模型请求,也不采集、不上传数据。它读的是会话日志里提供方上报的每一次计费请求用量:

  • token 来源:每次计费请求的 assistant/message / assistant/attempt 用量,按「回合 + 步」归并;重试过的计费尝试同样计入。
  • 价格:对照 DeepSeek 官方价目(元 / 百万 tokens)。空闲时段 Flash 为缓存命中 0.02、未命中输入 1、输出 4;Pro 为 0.15 / 4.5 / 13.5。高峰时段(北京时间工作日 09:00–12:00、14:00–18:00,不含法定节假日)价格乘 2。
  • 缓存写入按未命中输入价计算;金额四舍五入到 6 位小数后再展示。
  • 非 DeepSeek 官方模型没有内置价目,会回退到 Flash 价并标注 ≈,避免把估算当成精确值。

价目与节假日表写在 index.js 顶部,官方调价后改这一处即可。

安装与启用

安装命令如下,owner 换成本仓库所属的 ly13277:

dsh plugin --profile web add github:ly13277/DshRmbCostPer1Talk

装完刷新页面,在输入框工具行就能看到金额胶囊,位置在「权限」按钮右侧。

卸载用命令名 dsh-turn-cost-pill:

dsh plugin --profile web remove dsh-turn-cost-pill

代码结构

插件由两半边配合,Host 侧只注册一个会话投影,浏览器侧负责渲染胶囊:

文件 作用
index.js Host 半边:注册会话投影 turnSpend,把每轮用量折算成金额(wire.view)。
client.js 浏览器半边:在 conversation.input.left 注册金额胶囊(紧跟权限/计划按钮之后)。
cordis.patch.yml 向 profile 插入 turn-cost-pill Loader 行。
locale/*.json 插件管理页的标题与描述。
icon.svg / assets/icon-180.png 插件图标与市场卡片图标(原创)。

适用场景与注意

适合在调试过程中想随时看花费、又不想每次翻日志的开发者,尤其是按量计费、在意成本归因的场景。

需要注意三点:

  • 这个插件以当前 dsh 进程的权限运行,会在用户主目录、凭据目录与项目目录写入数据。安装或启用前,先检查源码与许可证(本仓库使用 MIT 许可),确认知悉其权限范围。
  • 金额是按 DeepSeek 官方价目折算的估算值,不是账单原值;实际扣费以 DeepSeek 账单为准。
  • 只统计模型请求的 token 花费,不包含图片附件等按次计费项(DeepSeek 当前没有此类项)。

另外,如果某个提供方没有上报 usage(例如请求在中途被强杀),这一步就不会出现在金额里——会话日志里没有可用的计费数据,属于数据源本身的缺失。

小结

这个插件的价值在于把「本轮/上次花了多少钱」从翻日志计算中抽出来,变成输入框旁边一个常驻的即时读数,数据来自会话日志已有的 usage 上报。目录页见 skillhub.cn 插件页,源码见 GitHub 仓库。

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

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

小夜