Chuyển đến nội dung chính

dsh-billing

Đã xác minh

@rayadesu/dsh-billing · v0.1.0 · MIT

DeepSeek Harness billing plugin: account balance and this session's billed spend with a session-header badge.

Cài đặt

dsh plugin add @rayadesu/dsh-billing

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Tác giả

Readme

DeepSeek Harness 计费插件

English | 中文

一个 DeepSeek Harness 插件,在 Web 会话头部直接显示你的 DeepSeek 账户余额当前会话(本轮对话)的花费,以及今日所有会话的共花费

余额是 GET /user/balance 的真实数字;会话花费与今日共花费是按官方峰/谷单价对每条消息的计费 token 逐条计价的结果,不是计费承诺。

显示什么

  • 会话头部徽标 —— 两行:剩余余额(剩余额度:¥X)+ 本轮对话的计费花费(本轮对话花费:¥X)。
  • 详情面板 —— 剩余金额、本会话花费(本会话花费)与其右侧的今日所有会话共花费(今日共花费),以及每个模型一行的花费分项(缓存命中 ¥X · 未命中输入 ¥Y · 输出 ¥Z),外加手动刷新按钮与花费说明。
  • 失败与空态 —— 会话或今日没有可计价消耗时显示「暂无消耗记录」而不是编造数字;未配置 key、凭据被拒或传输错误时显示弱化的「额度不可用」,其提示携带 Remote 自己的错误信息。

数据更新机制

  • 会话花费自动跟随 —— 当前会话每到达一条新消息,徽标就只重算本会话的花费今日共花费(纯本地计价,不发网络请求),连续对话时花费会实时跟着走。
  • 额度保持手动 —— 余额是账户级数据,只在挂载、切换会话、手动点刷新、或刷新浏览器时重新查询 /user/balance没有轮询,不会自动跟随账户变化。
  • 刷新期间旧值保留 —— 刷新失败保留上一次有效值,不会清空。

显示样式

image

包结构

作用
packages/llm-billing —— @rayadesu/dsh-llm-billing 主机端 负责 /user/balance 传输与峰/谷计价表。对外暴露 billing Remote(getBalancegetSessionSpendgetTodaySpend)。
packages/ui-billing —— @rayadesu/dsh-client-ui-billing 浏览器端 自己挂载 billing Remote,并贡献会话头部徽标与详情面板。

前置条件

  • DeepSeek Harnessdsh)—— 插件运行在 dsh profile 内。
  • 一个 DeepSeek API key —— 余额从 DeepSeek API 读取,所以每个用户都需要自己的 key。

安装

📌 仓库说明:本仓库是插件的唯一分发来源——deepseek-harness 官方仓库 (deepseek-ai/deepseek-harness不含计费插件;插件曾短暂集成于本用户的 fork,现已回退到官方提交版本 (141eb6fef8),本仓库不再依赖任何 fork。

安装(已发布到 npm,一条命令)

三个包已发布到 npm 的 @rayadesu scope。一条命令同时安装 bundle 与两个插件包 (bundle 把两个插件包声明为 peer 依赖,而 profile 默认不自动安装 peer,所以要显式列出):

dsh plugin --profile web add @rayadesu/dsh-billing @rayadesu/dsh-llm-billing @rayadesu/dsh-client-ui-billing

手动补行(仅当不想用 bundle 时):

# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
    - id: llm-billing
      name: '@rayadesu/dsh-llm-billing'
    - id: ui-billing
      name: '@rayadesu/dsh-client-ui-billing'

依赖说明

两个插件包把它们依赖的 DeepSeek Harness 包(@deepseek-ai/cordis@deepseek-ai/dsh-credentials@deepseek-ai/dsh-session 以及客户端运行时包) 声明为 peerDependencies^0.1.0-rc.8)。dsh profile 默认不自动安装 peer,所以 这些由 dsh 安装本身通过 profiles/node_modules 回退提供,而不是从 registry 拉取—— 无需额外安装,安装机也不需要 registry token。

配置你的 DeepSeek API key

二选一:在网页「模型」页填入(会把 DEEPSEEK_API_KEY 写入 ~/.dsh/.credentials.yaml),或导出环境变量:

export DEEPSEEK_API_KEY=sk-...

重启

dsh web

配置

两个包都有合理默认值,下面都是可选的。

主机端(llm-billing

字段 默认 含义
apiKeyEnv DEEPSEEK_API_KEY 每次调用时解析的凭据引用(环境变量)名。
baseURL $DEEPSEEK_BASE_URL,其次 https://api.deepseek.com 端点基础地址;会追加 /user/balance
models V4 Flash + V4 Pro + V4 Flash Vision Exp 展示用的模型行,按展示顺序。
billing.peakHours 09:00–12:00、14:00–18:00(北京,仅工作日) 高峰时段窗口,仅周一至周五适用;周末与其余时段均为低谷。
billing.models 官方 V4 费率 每个模型的峰/谷单价行(cacheHitInputcacheMissInputoutput,单位:元/百万 token)。

会话花费是怎么算的

  • 每条 assistant/message 事件报告三个计费 token 桶:缓存命中输入未命中输入(未缓存输入 + 缓存写入)、输出(含推理)。
  • 每条消息按其**发生时刻(北京时间)**所在的峰/谷时段单价计价,三个桶分别计费(缓存命中 ¥X · 未命中输入 ¥Y · 输出 ¥Z),再按模型汇总。高峰窗口仅周一至周五适用;周末全天按低谷价计费。
  • 今日共花费按同一个计价规则汇总当天(北京时间自然日)所有会话的事件;事件归属的日期同样按北京时间计算。
  • 没有费率行的模型不计入(内置价目表目前含三个 V4 行:V4 Flash、V4 Pro、V4 Flash Vision Exp)。计费按 DeepSeek 8 月 17 日实行的费率;周末按低谷价计费的规则按 8 月 23 日生效的调整执行。

已知限制

  • 有费率行才计价 —— 会话花费与今日共花费只统计价目表(billing.models)里有的模型。
  • 按需读取 —— 今日共花费每次刷新都会读取所有会话的完整事件日志,成本随总日志大小增长。
  • 额度不自动跟随 —— 余额保持手动刷新(无轮询),账户在其他客户端产生消耗时,界面值不会自动变化,需手动刷新或刷新浏览器。
  • 是估算,不是承诺 —— 会话花费按官方单价对 token 计价;实际计费以服务商为准。

许可证

MIT