dsh-session-cost:在 DSH 桌面版里实时看见会话花了多少钱

前言

在 DeepSeek Harness(DSH)里跑长对话时,官方界面会给出 token 用量,但不容易直接对应到人民币或账号层面的消耗。若你同时关心「这一轮对话累计花了多少」「单条回复本轮扣了多少」「开放平台余额和今天一共扣了多少」,往往要切到网页或自己记账。

dsh-session-cost 是维护者 ytftu 发布的客户端类 DSH 插件:在输入框底栏、每条回复动作栏和窗口右上角三处展示消费与余额,并支持点击弹出折线图。会话金额按 DSH 自己的会话日志逐轮重算,不依赖其他计费类插件。

这是什么

插件全名 dsh-session-cost,当前版本 0.1.0,许可证 MIT。归类为 DSH 社区目录中的「客户端」插件;仓库在 GitHub 上约 3 stars。目录页:ytftu/dsh-session-cost。

实现上是纯 Cordis 插件:宿主半边 lib/index.js 负责价目、峰谷、日志解析与只读 HTTP 路由;浏览器半边 lib/client.js 负责界面注入与图表。需要 Node.js ≥ 20(解析 zstd 会话日志)。

核心功能

下面按界面位置说明已文档化的能力。

输入框底栏

在 token 用量之后显示本会话总消费,例如 本会话 ¥ 6.42;可在面板底部切换为 本会话 12 积分(需配合 WorkBuddy 相关插件,见后文)。点击底栏数字弹出每轮消费折线图。

每条回复

在官方「用量 N tok」右侧增加与官方按钮同款的金额标签,例如 ¥ 0.28;悬停可看该轮明细。悬停层为自绘深色浮层,不是系统 tooltip。

窗口右上角

显示峰谷提示、余额与今日用量,例如 谷时 余额 ¥ 42.00 · 今日 ¥ 3.21。点击弹出近七日每日用量折线图,并提供「进入 DeepSeek 开放平台」按钮(经 DSH 侧栏浏览器打开,便于保留登录态)。

计价与数据来源(要点)

会话金额(底栏 / 每轮):解析 ~/.dsh/sessions/<工作区编码>/<会话 id>/session.v4.jsonl.zstd,只取 assistant/message 事件,按 turn:step 去重后与 DSH token 投影同口径;单价为未缓存输入、缓存读取、输出分别乘以价目,并按该轮写入时刻判断峰谷(高峰 ×1,谷时 ×0.5)。因此包含插件启用前的历史轮次。

余额与今日用量(右上角):有 DEEPSEEK_API_KEY 时优先请求 GET https://api.deepseek.com/user/balance;否则用 DSH 账号余额。今日用量通过每 60 秒采样余额、累计下降部分得到;与底栏「本会话」的 token×单价口径不同,不能相加。

可选:若存在 ~/.dsh/.dshw-api.json(来自 dsh-whale-widget),插件只读复用其中的自定义单价与汇率。装了 dsh-workbuddy-connect 后,底栏可切换为 WorkBuddy 积分估算(账号级、非按会话账单)。

峰谷规则(北京时间):高峰为工作日 09:00–12:00、14:00–18:00;其余时间、周末及硬编码法定节假日为谷时(×0.5)。节假日表需按国务院公告每年更新。

安装与启用

文档在 Windows 上 DSH Desktop 2.0.x 验证,统计行兼容 0.2.0 与 0.2.1。安装前请自行审阅仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行。

1、把仓库放到 DSH 插件目录。Windows 示例:

git clone https://github.com/<你>/dsh-session-cost.git "$env:USERPROFILE\.dsh\plugins\dsh-session-cost"

macOS / Linux 对应目录为 ~/.dsh/plugins/dsh-session-cost。

2、在 profile 中登记(~/.dsh/profiles/desktop/package.json):

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

路径按本机修改;保留文件中已有的其他依赖与 bundle。

3、在 ~/.dsh/profiles/desktop/node_modules/ 下建立指向插件目录的链接(Windows 可用 Junction,或在 profile 目录执行 npm install):

New-Item -ItemType Junction `
  -Path   "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-session-cost" `
  -Target "$env:USERPROFILE\.dsh\plugins\dsh-session-cost"

4、重启 DSH。禁用或移除插件后,三处 UI 会立即消失,不影响会话本身。

改 lib/client.js 或 lib/index.js 后均需重启 DSH;桌面版无有效页面刷新,Ctrl+R / F5 无效。

配置说明

宿主通过 process.env.DSH_HOME 定位数据目录,未设置时使用 ~/.dsh。

自定义单价见上文 .dshw-api.json 示例结构;金额为每百万 token,cur 非 CNY 时用 rate 折人民币。

典型用法与本地接口

日常无需额外命令:打开会话即可在底栏与每条回复看到金额;点右上角查看余额、今日用量与近七日曲线。

本机只读 HTTP(仅 localhost / 127.x / [::1],否则 403):

GET /dsh-session-cost/session-cost.json?session=<会话 id>
GET /dsh-session-cost/platform.json[?refresh=1]

返回字段见 README(含 turnCosts、days、peak 等)。

适用场景与注意

适合在 DSH 桌面版里做对话成本可视化、对照峰谷时段调度的开发者。已知限制包括:节假日表需手动维护;依赖 session.v4.jsonl.zstd 格式;右上角余额口径随 API key 或账号登录方式变化;主要在 Windows 桌面版实测;WorkBuddy 积分为账号级上限估计。

DSH 生态强调「一切皆插件」;SkillHub 目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

若你需要在 Harness 里同时看到会话总价、单轮扣费、开放平台余额与今日用量,可按上文步骤接入 dsh-session-cost。详情与截图见 GitHub 仓库,问题可提 Issues。

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

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

Xiaoye