dsh-session-tariff:在 DSH 输入框状态栏显示本会话估算花费

前言

用 DSH(DeepSeek Harness) 跑长会话时,旁边往往已经有轮次、步数、token 吞吐和缓存命中率等统计,但很难直接回答「这一整段对话大概花了多少钱、高峰和空闲各占多少」。官方 tokenUsage 投影只给全量聚合桶,没有时间维度,也无法按 provider 分账。

下面介绍社区插件 dsh-session-tariff(维护者 xuanyuanli,分类为客户端):在输入框状态栏增加「本会话花费」胶囊,按每条请求所属 provider 的高峰 / 空闲两档价估算金额,点开可看各时段、各模型的 token 桶与分摊金额。价目可在 GUI 里按 DSH 当前注册的 provider / 模型编辑,保存后立即生效。

这是什么

dsh-session-tariff 是给 DSH Web GUI 用的插件:在原有统计控件之后、上下文占用圆环之前显示 ⊙ ≈¥x.xx 一类的估算花费胶囊。口径与会话全量日志一致(不是当前窗口),与旁边 token 统计对齐。

内置 DeepSeek 官方(deepseek-account)与 阿里云百炼(bailian / bailian-chat)价目表和时段规则;也可用 config.providers 逐 provider 覆盖,或通过设置页改价并写入 profile 的 cordis.patch.yml。金额带 ≈,表示按 token 与单价推算的估算,不是账单。

目录页:skillhub.cn/plugins/xuanyuanli/dsh-session-tariff
源码与说明:github.com/xuanyuanli/dsh-session-tariff(MIT,当前 package 版本 1.3.2)。

界面与交互

状态栏示例(胶囊在 token 统计与上下文圆环之间):

 ⌁ 3 轮 102 步 · 251 tok/s     ⛁ 18.2M tok · 缓存命中 99%     ⊙ ≈¥1.72     ◔ 19%

点击胶囊会打开明细:按高峰 / 空闲分组,列出请求次数,以及缓存读取、未缓存输入、缓存写入、输出四个用量桶的 token 数与金额;底部注明本次实际结算的单价与时段规则。会话跨多个 provider 时,明细行会带 provider 小标签,底部说明按 provider 分组。

插件跟随 DSH 主题与语言(中 / 英),支持 Esc 关闭面板、点击面板外关闭。token 列可用 K / M 缩写,悬停可看完整千分位数。

核心功能

按 provider 与时段计价

  • 每条 模型调用 计为一次请求;归属时段取 step/start 的发起时刻(UTC+8,中国无夏令时)。
  • provider / 模型 以该次 assistant/message 的 message.source.provider / message.source.model 为准;同一步骤内 assistant/attempt 的用量会被最终 assistant/message 覆盖,不重复计;llm/retry-started 后的重试另算一次。
  • 工作日 09:00–12:00、14:00–18:00 为高峰;其余含周末与法定节假日为空闲;调休上班日(workdays)优先于周末与节假日,工作时段内仍可按高峰计。

宿主投影 sessionCost

插件在宿主侧注册会话投影 sessionCost(host.js),折叠 session/* 事件流得到「provider × 模型 × 时段」账本;客户端(client.js)取数、套单价并渲染。该折叠与官方 tokenUsage 同口径,两档合计应与 tokenUsage 逐项一致(README 称已验证)。

GUI 价目编辑

装好后不必先改 YAML。路径包括:设置 → 插件 → dsh-session-tariff(或该行「配置」)、以及 设置 → 内置插件 → 会话花费——三处同一份编辑器。行由 DSH 的 listProviders() / listModels() 生成;改单格只覆盖该格,清空即恢复继承;保存经 POST /dsh-session-tariff/api/save 校验后写盘,无需重启 DSH(只改客户端半时刷新页面即可;改 host.js 或从旧版升级宿主状态时需重启)。

安装与启用

前置:可用的 DSH(Desktop 或带 profile 启动的 dsh),插件按 profile 安装,对该 profile 下所有会话生效。声明兼容 @deepseek-ai/dsh ^0.2.1-rc.2,README 写明实测于 0.2.1-rc.3;0.1.x 的客户端 slot / 投影 API 与 0.2 不同,未测过。

方式一:npm(发布后可用)

dsh plugin add dsh-session-tariff

方式二:让 DSH 助手从源码安装(README 推荐、当前可用)

在 DSH 会话中对助手说明(原文示例):

把这个插件装到当前 profile:https://github.com/xuanyuanli/dsh-session-tariff,克隆到本地后用 plugin_manager install_bundle 安装那个目录。

安装后:客户端半刷新页面即可(必要时 Ctrl+Shift+R);宿主半投影在 DSH 进程内注册,从 1.1.0 升级且宿主状态形状变化时需 重启 DSH 以装载新模块。

卸载:助手执行 plugin_manager remove_bundle dsh-session-tariff;npm 安装则用 dsh plugin remove dsh-session-tariff。

配置要点

除 GUI 外,仍可在 profile 的 Cordis patch 里写 YAML。兜底单价(无内置预设且无 config.providers 条目时)默认与 DeepSeek 官方文档中 deepseek-flash 档一致(单位:货币 / 百万 tokens),例如:

- insert:
    - id: session-tariff
      name: dsh-session-tariff
      config:
        pricing:
          currency: '¥'
          idle: { cacheHit: 0.02, cacheMiss: 1, cacheWrite: 1, output: 4 }
          peak: { cacheHit: 0.04, cacheMiss: 2, cacheWrite: 2, output: 8 }

config.providers.<provider> 可覆盖单个 provider 的时段规则与模型行价目;价目不会从 API 实时拉取,官方调价后需自行更新配置或 GUI 中的价目。

适用场景与注意

适合需要在 同一会话日志 上快速对照 token 统计、并按 高峰 / 空闲 与 多 provider 理解花费结构的 DSH 用户(例如混用 DeepSeek 官方与百炼、或切换模型 / 子代理的长跑任务)。

使用时请注意:

  • 显示为 估算,四舍五入后分项相加可能与时段合计差 ±0.001。
  • 插件以 当前 DSH 进程权限 运行,安装前应阅读源码与 MIT 许可证,确认符合你的环境策略。
  • SkillHub 插件目录 是社区站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录页为准(当前线索为 0 star)。

结尾

dsh-session-tariff 把「本会话花了多少、高峰空闲各多少、每个 provider / 模型怎么摊」从 token 聚合里拆出来,放在输入框状态栏一眼可见,并可在设置里维护价目。需要安装或改价时,以仓库 README 为准:

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

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

小夜