dsh-deepseek-cost: Track DeepSeek API costs on the DSH Web chat page

前言

在 DeepSeek Harness(DSH)里用 Web 聊天跑多轮对话时,token 用量分散在会话事件里,官方控制台也要另开页面才能对账。若你关心单次任务花了多少钱、高峰时段是否被翻倍计费,单靠肉眼估算并不靠谱。dsh-deepseek-cost 是社区维护的 DSH 插件,挂在输入框下方的统计行里,对当前会话做实时费用汇总,并可展开模型与峰谷明细。下文介绍它的能力、安装方式与使用注意点。

这是什么

dsh-deepseek-cost 面向 DSH 的 web profile:从会话日志折叠 provider 上报的 token 用量,按 DeepSeek 官方价目(CNY / 百万 tokens)计算输入(缓存未命中 / 命中)与输出费用,并区分北京时间下的高峰、低谷时段。维护者 miaoxintechnology,源码与文档在 GitHub,社区目录见 SkillHub。分类上常归在 admin-security 一类,侧重用量可见性与账户相关查询。

当前 package 版本为 0.3.2,许可证 MIT。插件以 Cordis bundle 形式注入 Web 客户端,依赖 zod@4 与 @deepseek-ai/cordis。

核心功能

从会话事件自动归集用量

宿主侧注册会话投影单元 deepseekCost,对事件日志做纯函数折叠,不向页面额外发统计类请求。主要事件来源包括:

事件 作用
request/context 记录当前路由的 provider 与 model
assistant/chunk(usage 块) 步骤的早期用量样本
assistant/message(usage 字段) 同一步骤的最终样本,替换早期样本
compaction/summary 压缩总结调用的用量

同一步骤按「后到替换」合并,避免重复计数。

峰谷时段与节假日

每个用量样本按事件时间戳(北京时间)归入高峰或低谷桶:

  • 工作日高峰:9:00–12:00、14:00–18:00,价格为低谷价 × 2(与官方高峰档一致)。
  • 其余时段、周六日、中国法定节假日全天按低谷价计费。

节假日表采用三层策略:内置 2026 年国务院安排、2027–2099 年农历算法兜底、每 24 小时从 CDN 拉取 holiday-cn 覆盖;拉取失败时静默回退内置数据。未在价目表中的模型会显示「未定价 / 部分未定价」,不会静默按错误单价计费。

界面与账户余额

输入框下方 composer dock 显示累计费用与当前时段徽标(峰 / 谷文案随北京时间每分钟刷新)。点击后展开明细:总计及峰谷拆分、按模型表格、计费起止时间、官方定价页链接。

展开明细时会调用 DeepSeek 官方 GET /user/balance,复用 DSH 已配置的 API Key 显示余额与可用状态,支持一键刷新;查询失败只提示错误,不影响会话内费用统计。

版本兼容

投影定义同时兼容 DSH ≥ 0.1.1 与 0.1.0-rc.7 的会话投影契约。README 注明:0.1.1 起宿主侧契约变更,若仅安装旧式 schema/view 可能导致快照校验失败、页面无显示。

安装与启用

环境要求:本机已安装 DSH(dsh 可用),且使用 web profile;方式一、二需要系统内有 pnpm(Node 22+ 可通过 corepack enable pnpm 获得)。

从本地目录安装(推荐)

拿到插件文件夹后执行:

dsh plugin --profile web add /path/to/dsh-deepseek-cost
dsh web   # 重启后生效

dsh plugin 会在 web profile 目录用 pnpm 安装依赖,并把 dsh-deepseek-cost 写入 dsh.profile.bundles。

从 Git 仓库安装

dsh plugin --profile web add github:miaoxintechnology/dsh-deepseek-cost
dsh web

无法访问 GitHub 时,可改用 Gitee 等镜像 URL,或按 README「方式四」离线拷贝目录。本插件无 prepare/build 脚本,通常不需要 allowBuilds;若 pnpm 仍提示,按文档把对应 key 加入 ~/.dsh/profiles/web/pnpm-workspace.yaml 后重试。

验证与卸载

验证:

dsh --profile web --dump-config | grep deepseek-cost

应看到 id: deepseek-cost、name: dsh-deepseek-cost。任意会话产生一次模型回答后,输入框下方应出现 DeepSeek ¥… 统计行。

卸载:

dsh plugin --profile web remove dsh-deepseek-cost
dsh web

无 pnpm 或纯离线场景,README 还描述了手动复制到 ~/.dsh/profiles/web/node_modules/dsh-deepseek-cost 并在 package.json 的 dsh.profile.bundles 中追加条目的步骤;跨设备时不要直接拷贝整份 profile 的 package.json(可能含本机绝对路径)。

典型用法与价格维护

日常使用无需额外配置:打开 dsh web,在会话中对话即可看到累计费用;需要核对模型分项或余额时点开展开面板。

官方默认定价写在 lib/pricing.js 的 DEFAULT_PRICING 中,例如低谷价(元 / 百万 tokens):

models: {
  'deepseek-flash':       { input: 1,   cacheHit: 0.02, output: 4 },
  'deepseek-v4-pro':      { input: 4.5, cacheHit: 0.15, output: 13.5 },
  'deepseek-chat':        { input: 2,   cacheHit: 0.5,  output: 8 },
  'deepseek-reasoner':    { input: 4,   cacheHit: 1,    output: 16 },
},

若官方调价或出现新版本模型名,可改 lib/pricing.js,或在 cordis.patch.yml 的 config.pricing 下覆盖 peak 与 models 字段。README 提醒 deepseek-chat / deepseek-reasoner 条目可能仍为较早占位价,应以官方定价页为准更新。

本地改折叠逻辑时可跑冒烟测试:

node test/fold.test.js

适用场景与注意

适合:长期在 DSH Web 里调试智能体、需要按任务看清 API 花费、或要在高峰 / 低谷策略下规划调用时间的开发者。

安装前建议自行浏览仓库源码与 MIT 许可证。DSH 插件在 当前 dsh 进程权限 下运行;本插件会读取会话事件并在展开明细时用已配置的 API Key 请求余额接口,属 admin / 安全相关能力,仅在可信环境安装。

社区插件目录(SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文事实均来自项目 README 与 package 元数据。

结尾

dsh-deepseek-cost 把单次 Web 会话的模型用量、峰谷规则与官方单价收成一条可点击的统计行,适合在对账和控费场景里与 DSH 同时使用。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye