dsh-session-metrics:在 DSH Web GUI 里看会话花费、缓存节省与峰谷时段

前言

在 DSH Web GUI 里,自带的 stats pills 会汇报 token 与上下文占用,但不会把用量换算成钱。开发者往往还要自己查价目表、猜缓存省了多少钱,以及判断当前是否处于 DeepSeek 等提供商的峰时计价窗口。新接入的提供商若在配置里尚未录入费率,页面上也缺少明确提示,容易把「未定价」误当成免费。

下面介绍社区插件 dsh-session-metrics(维护者 mrdhira,分类为客户端)。它在输入框下方增加一条指标条,并与点击后的详情面板配合,回答「这场对话花了多少钱」「缓存相对 miss 省了多少钱」「当前小时是 peak 还是 off-peak」,同时刻意不重复 stats pills 已有的 token 总量、缓存命中率、上下文占比、轮次、步数或 tok/s。

这是什么

dsh-session-metrics 是面向 DSH Web GUI 的会话 cost 与 billing 指标插件:基于 Host 与 stats pills 相同的 tokenUsage 投影做解释,而不是第二套账本。Fresh install 自带 deepseek-account、deepseek-official、netra-runtime 与 openrouter 的费率卡;OpenRouter 仅对目录里标记为免费的模型(含 :free 后缀等)提供零费率,付费模型无卡时显示 unpriced,表示缺卡而非安装失败。

安装后还会注册 Agent Skill session-metrics,可向智能体询问本场花费、某模型是否已定价,或如何为已观测到的 provider/model 补费率卡。

  • 目录页:https://www.skillhub.cn/plugins/mrdhira/dsh-session-metrics
  • 源码:https://github.com/mrdhira/dsh-session-metrics(MIT,当前 package 版本 1.1.0)

核心功能

指标条(strip)

位于 composer 下方,默认展示 cost、saved 以及峰谷状态(带本地时间);当会话使用的提供商不是配置的 primary 时显示 provider;可配置 per-session 预算及预警进度。芯片顺序与显隐可通过 display.chips 调整(peak、time、cost、saved、provider、budget)。

详情面板(detail)

点击指标条可查看:按 cache-hit / miss / write / output 拆分的费用、缓存节省与混合费率、费率窗口与倒计时(峰谷按提供商时区解析,含节假日;详情打开时约每分钟刷新一次)、逐步费用、多模型切换时的分模型费用,以及各数字对应的投影来源。

定价语义

  • 无费率卡的模型显示 unpriced,与「费率全零的真正免费模型」区分;未定价的一对不会渲染成数字。
  • 费率单位为 USD / 1M tokens(display.currency 可选 USD 或 CNY)。模型使用 flat 或带 offPeak 的 peak 之一;提供商无 billing.windows 时不显示 peak 芯片。
  • 若在 cordis.patch.yml 中自定义 providers: 列表,会替换内置卡而非追加;需自行补全用到的 provider/model,否则 Seen, unpriced 会列出缺卡的观测对。

安装与启用

插件通过 profile link 安装,未发布到 npm;构建产物为 lib/**(由 pnpm install 触发的 prepare 生成,勿手改)。环境要求:可编辑的 DSH profile(如 ~/.dsh/profiles/desktop)、Node.js 22+ 与 pnpm。Bundle 自行声明 Loader,一般无需改 cordis.patch.yml。

方式 A:install.sh

git clone https://github.com/mrdhira/dsh-session-metrics.git ~/.dsh/plugins/dsh-session-metrics
cd ~/.dsh/plugins/dsh-session-metrics
./install.sh                 # builds, registers in your profile, runs pnpm install

脚本支持 --profile <dir> 指定非默认 profile、--check 仅预览变更、--remove 注销。

方式 B:手动注册

1、克隆到稳定路径

git clone https://github.com/mrdhira/dsh-session-metrics.git ~/.dsh/plugins/dsh-session-metrics
cd ~/.dsh/plugins/dsh-session-metrics

2、构建

pnpm install

3、在 profile 的 package.json 中 link 并加入 bundles(路径改为本机绝对路径):

{
  "dependencies": {
    "dsh-session-metrics": "link:/Users/<you>/.dsh/plugins/dsh-session-metrics"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-session-metrics"
      ]
    }
  }
}

4、在 profile 目录安装依赖并重启 DSH

cd ~/.dsh/profiles/desktop && pnpm install

Host 侧变更需完全退出并重新打开 DSH(README 示例:⌘Q 后重开),仅刷新页面不够;纯 UI 变更可在插件管理器中切换 bundle。

验证

composer 下方应出现含 cost、saved 与峰谷指示的条带。若未出现:确认 lib/v1/index.js 存在;profile 的 package.json 在 dependencies 与 dsh.profile.bundles 中均包含 dsh-session-metrics;安装后已重启 DSH。出现 unpriced 芯片通常表示安装正常但缺对应费率卡。

配置与典型用法

新装默认可用内置费率卡,无需先改配置。图形化编辑:Plugins 侧边栏 → dsh-session-metrics。等价 YAML 片段示例(字段含义以 README 为准):

- id: session-metrics
  name: dsh-session-metrics
  config:
    display: { currency: USD, primaryProvider: deepseek-account }
    budget: { sessionUsd: 5, warnAt: 0.75 }
    providers:
      - id: my-router
        models:
          - model: some/model
            rates: { flat: { cacheHit: 0.01, cacheMiss: 0.1, output: 0.25 } }
        billing: { windows: [] }      # no peak concept
配置项 默认 作用
display.currency USD 显示货币:USD 或 CNY
display.primaryProvider — 会话使用该 provider 时隐藏 provider 芯片
display.chips all 芯片种类与顺序
budget.sessionUsd off 单会话预算上限,省略则关闭
budget.warnAt 0.75 达到预算该比例时预警

完整费率格式与内置卡说明见仓库内 docs/pricing.md;各指标与投影对应关系见 docs/data-sources.md。

向已安装 skill 的 Agent 提问示例:「这场 session 花了多少」「某 provider/model 有没有定价」「如何为刚出现的未定价对加 rate card」。

适用场景与注意

适合长期在 DSH Web GUI 里跑多轮对话、需要把 token 用量对齐到账单、并关心 DeepSeek 类峰谷计价的开发者。插件与当前 DSH 进程同权限运行;安装前请自行审阅源码与 MIT 许可证,社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,属「一切皆插件」生态中的第三方扩展。

自定义 providers 会替换内置 OpenRouter 免费卡等默认配置,迁移时需逐项补卡。OpenRouter 付费模型故意不提供虚构单价;集成新提供商后若未录入费率,应依赖 unpriced / Seen, unpriced 提示补配置,而不是假设为零成本。

结尾

dsh-session-metrics 在不重复 stats pills 的前提下,把同一份 tokenUsage 投影解释为可读的 cost、savings 与峰谷状态,并可通过 GUI 或 cordis.patch.yml 维护费率与预算。需要细节时可查阅 GitHub 仓库 与 SkillHub 目录页。

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

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

小夜