dsh-plugin-cost-meter:会话顶栏实时费用徽章与峰谷计价

前言

在 DeepSeek Harness(DSH)里跑多轮对话时,token 用量会随请求累积,但界面往往不会把「这一会话大概花了多少钱」摆在显眼位置。若你同时关心官方峰谷时段(工作日高峰与低谷、周末全天低谷等),单靠记忆单价或事后对账单,很难在开发调试时快速判断成本。

下面介绍社区插件 dsh-plugin-cost-meter(维护者 doubsumi):它在 Web 客户端会话标题栏右上角显示按会话累计的实时费用徽章,并按每条请求的墙钟时间套用峰谷规则计价。插件归类为客户端,属于 DSH「一切皆插件」生态中的社区条目;目录见 SkillHub 插件页,源码与说明以 GitHub 仓库 为准。

这是什么

dsh-plugin-cost-meter 是面向 DeepSeek Harness 的客户端插件:在对话头部右上角挂载 live cost badge,随宿主上报的 provider usage 更新,无需轮询或定时器。计价支持峰谷分时(peak / off-peak);DeepSeek 计费习惯上仅周一至周五部分时段为高峰,周末全天按低谷处理,具体窗口可在配置或价目表中调整。

徽章展示的是当前会话估算费用,不汇总子会话或整账号;未匹配到价格的线路会显示「未配置」(unpriced),不会用虚构单价凑数。

核心功能

实时与会话级累计

宿主上报用量后徽章即更新。费用按 { provider, model } 线路分别累计;同一会话中途换模型时,各线路各自计价。同一 (turn, step) 的重复 usage 样本会替换旧值,避免重复计入。

按请求时间做峰谷判断

每条请求按自身的 event.time 判断所处档位,而不是用「当前时刻」。因此会话跨夜、跨高峰与低谷时,历史请求仍按当时档位计价;已折叠样本的金额会冻结写入持久化投影缓存,价目表后续变更不会改写过去会话的合计(冷启动无检查点时才会按当时价表重算日志)。

价目来源与静默同步

价格解析优先级(高者覆盖低者)为:

  1. config.models / config.default(手动覆盖,最高)
  2. config.pricingUrl(旧版 { models, default } 文档)
  3. 远程 catalog(默认指向本包在 GitHub 上的 catalog/prices.json,由 package.json 的 repository 推导)
  4. 包内自带的 catalog/prices.json(离线兜底)

默认每 refreshMinutes(默认 360,即 6 小时)静默拉取远程 catalog;失败则保留上一次成功数据。维护者更新仓库中的 catalog/prices.json 后,已安装实例可在不发新版插件的情况下跟进单价(Fork 会拥有自己的默认更新通道)。

模型支持 catalog 风格(cacheMiss / cacheHit 等及可选 *OffPeak)与 legacy 风格(inputPerM 等及可选 *Peak)。路由匹配支持 provider/model、provider/*、*-model 通配,并对 model id 做大小写、空格、标点不敏感归一化。

客户端挂载点

徽章使用 additive 插槽 conversation.session.header.utilities;README 说明 …header.corner 为已被内置插件占用的 single 插槽。DSH ≥ 0.1.5 使用 stateSchema 与 wire: { viewSchema, view } 投影契约,并依赖 @deepseek-ai/dsh-client-ui-renderer、@deepseek-ai/dsh-client-ui-session 等;package.json 中 engines.dsh 为 >=0.1.5-rc.1 <1.0.0。

安装与启用

推荐从 npm 安装到 web profile。包声明了 dsh.bundle,dsh plugin add 会自动激活 profile 层,一般不必手写 cordis.patch.yml 插入行。

dsh plugin --profile web add dsh-plugin-cost-meter

安装后重启 Web 服务:

dsh web

若本地开发插件,可用 link: 指向目录(路径按本机修改),修改后重启 dsh web 即可生效,无需重装:

dsh plugin --profile web add "link:E:/path/to/dsh-plugin-cost-meter"

配置要点

在 profile 的 cordis.patch.yml(例如 ~/.dsh/profiles/web/cordis.patch.yml)中,用与内置相同的 id: cost-meter 覆盖默认项。README 给出的示例包含显示货币、汇率、catalog 地址、刷新间隔、手动模型价与峰谷窗口等字段:

- insert:
    - id: cost-meter
      name: dsh-plugin-cost-meter
      config:
        currency: CNY
        fx:
          cnyPerUsd: 7.1
        catalogUrl: ""
        refreshMinutes: 360
        pricingTimeoutMs: 4000
        pricingUrl: ""
        models:
          deepseek-official/deepseek-flash:
            inputPerM: 1.06
            cacheReadPerM: 0.021
            cacheWritePerM: 1.06
            outputPerM: 4.26
        peak:
          enabled: true
          multiplier: 2
          timezoneOffsetMinutes: 480
          days: [1, 2, 3, 4, 5]
          windows: [[9, 12], [14, 18]]

说明:currency 为空则跟随 catalog 货币;catalogUrl 为 "" 时使用包默认远程 catalog;设为 "" 并配合本地路径可指向私有镜像或 file:///…。peak.enabled: false 时按单一费率计费;peak.timezoneOffsetMinutes 用于峰谷窗口的墙钟偏移。悬停徽章可查看当前档位、倍率、线路与 token 分项。

计价公式在 README 中按 uncached input、cache read/write、output 四类 token 分别乘以对应单价后除以 1_000_000 再求和,并区分峰、谷档位。

典型用法

  1. 按上文命令为 web profile 安装插件并执行 dsh web。
  2. 打开任意会话,在标题栏右上角观察费用徽章;随对话产生 usage,数字应随宿主上报更新。
  3. 若默认 catalog 不满足环境(私有模型线路、自定义汇率或峰谷窗口),在 cordis.patch.yml 的 cost-meter 配置里填写 models 或调整 peak / catalogUrl。
  4. 需要与官方标价对照时,README 建议核对 DeepSeek 官方定价页;包内 catalog 为带日期的快照。

适用场景与注意

适合在 DSH Web 端边调试智能体边盯会话成本、且需要工作日峰谷近似计价的开发者。费用为估算值,依赖 provider 上报的 usage 与价目表;不适合作为财务对账的唯一依据。

插件以当前 DSH 进程权限运行,安装前请自行审阅 MIT 许可 下的源码与 catalog/prices.json。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,本文事实以仓库 README 与 package.json 为准。

结尾

dsh-plugin-cost-meter 把「这一会话花了多少」放到对话头右上角,并按时分峰谷与可远程同步的价目表计价,减少边用边猜账单的压力。进一步了解可访问目录页 https://www.skillhub.cn/plugins/doubsumi/dsh-plugin-cost-meter 与 GitHub https://github.com/doubsumi/dsh-plugin-cost-meter。

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

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

小夜