← Back to home@xqtx9527

dsh-live-pricing

DeepSeek Harness 实时价格条:高峰/空闲时段、中国法定节假日、当前单价与会话花费 | Live pricing widget for DSH

Stars
0
Language
JavaScript
Created
Sep 30, 2026
Updated
Oct 3, 2026
GitHub repo

Introduction

dsh-live-pricing

DeepSeek,现在用便宜吗?空闲时段半价,高峰时段原价 · 小秦同学

npm CI License Topic

DeepSeek Harness(DSH)的峰谷时段条:在输入框下方常驻一条信息,只显示三样东西—— 现在是不是空闲时段、用的是哪个模型、本会话花了多少钱。

● 空闲时段  deepseek-flash                        本会话 ¥3.04

点一下整条即可展开明细。

显示内容

条形只有三格:

项目说明
时段状态高峰 / 空闲,带颜色圆点(高峰=琥珀,空闲=绿)
模型本会话实际使用的模型 id
本会话金额按峰谷分段计价得出的本次会话花费(人民币)

点一下整条,只多一件事:此刻生效的实时单价(缓存命中输入 / 缓存未命中输入 / 输出)。没有别的说明性文字。

会话金额怎么算

金额=每条请求按其发生时刻所处的时段取价,再累加:

金额 = 高峰桶用量 × 高峰价 + 空闲桶用量 × 空闲价
其中某个桶的用量 = 缓存读 × 命中价 + (未缓存输入 + 缓存写入) × 未命中价 + 输出 × 输出价

关键在于分桶的时机:会话常常横跨高峰与空闲,用"当前时段"的单价去套整个会话会算错。所以分桶这件事放在 Host 端(index.js)做——登记一个只读的 session projection,逐条读取 assistant/message,按事件的 time 归入高峰或空闲桶,折叠的是整段会话日志,不受客户端窗口分页影响;浏览器端只负责按对应单价乘出结果。

早期 0.1.x 把分桶放在浏览器端,依赖会话窗口里的节点。窗口是分页的,节点经常凑不齐,于是退回"当前时段单价 × 整段用量",实测偏差可达两倍——这是当时金额对不上的根因。

已知偏差来源(展示值仍是估算,不是账单):

  • 币种:插件按人民币展示(官方中文价目页口径)。如果你的平台账页以美元结算,需要自行换算。
  • 口径差异:缓存读写如何计入未命中、推理 token 是否并入输出、失败重试是否重复计费,各家口径未必完全一致。
  • 子代理:子代理是独立会话,各自单独计费,不计入本会话。

想要与官方账单对齐的金额,请用官方用量页,或下面这些专门做计费、并且会与官方余额对账的社区插件:

插件说明
dsh-elegent-balance-tracker逐条按消息时刻选峰谷价,每分钟与官方 GET /user/balance 对齐,并自动同步官方定价页
dsh-billing全局/单会话账本、消费上限阻断、账户余额,价目取自官方 @earendil-works/pi-ai

峰谷规则

  • 高峰时段 = 北京时间 周一至周五(不含中国法定节假日)09:00–12:00 与 14:00–18:00
  • 其余时段(含周末与法定节假日全天)为空闲时段,空闲价 = 高峰价 × 50%
  • 调休上班的周末(例如 2026-09-20 周日、2026-10-10 周六)仍然是周末,按规则本就空闲,无需特殊处理

价目表(高峰价)

模型缓存命中输入缓存未命中输入输出
deepseek-flash(DeepSeek-V4.1-Flash)¥0.04 / $0.006¥2 / $0.30¥8 / $1.20
deepseek-v4-pro(DeepSeek-V4-Pro)¥0.30 / $0.044¥9 / $1.32¥27 / $3.96

空闲价一律减半。旧模型名 deepseek-v4-flash、deepseek-v4-flash-vision-exp 会归一到 Flash 价。

来源:

官方价格可能调整。价目与节假日表都在 client.js 顶部的常量里(PRICE_TABLE、HOLIDAY_RANGES、PRICE_CHECKED_AT),改动后重启即可生效。

节假日表

HOLIDAY_RANGES 目前覆盖 2026 年(国办发明电〔2025〕7 号): 元旦 1/1–1/3、春节 2/15–2/23、清明 4/4–4/6、劳动 5/1–5/5、端午 6/19–6/21、中秋 9/25–9/27、国庆 10/1–10/7。

未覆盖的年份不会被误判为节假日,面板会明确写出「价目表未覆盖之后的节假日」。

数据来源

数据来源
当前模型内置的 modelSelection 会话投影
会话的分时段用量本插件在 Host 端注册的 deepseekLivePricing 会话投影
时间、峰谷、节假日、单价插件内置,纯本地计算
  • 不联网:不做任何网络请求。
  • 不采集数据:无遥测、无上报。
  • 不改动模型输入:不注册工具、不注入提示词段落,模型的每一次请求与不装该插件时完全一致。
  • 只读:不写会话日志、不写任何文件。

安装

# Web 版
dsh plugin --profile web add dsh-live-pricing

# 桌面版
dsh plugin --profile desktop add dsh-live-pricing

也可以直接从 GitHub 或本地目录安装:

dsh plugin --profile web add git+https://github.com/xqtx9527/dsh-live-pricing.git
dsh plugin --profile web add /path/to/dsh-live-pricing

DSH Desktop 必须重启应用(⌘Q 后重新打开),刷新页面不够。 桌面版主进程在 Host 启动时把 Web boot 注入一次性缓存(injections = ready.injections), 页面刷新只会重新领取同一份缓存;实时推送通道 dsh-app://app/plugins/events 在桌面协议下会以 net::ERR_FAILED 失败,HMR 也推不到页面。 退出并重新打开 DSH 后,时段条会出现在输入框下方。

卸载:

dsh plugin --profile web remove dsh-live-pricing

兼容性

  • 目标 profile:web 与 desktop(在 DSH Desktop 0.2.0-rc.2 / macOS arm64 上开发)。
  • 无构建步骤:浏览器产物是手写的 plain JS,直接由 ./client 导出提供。
  • 只依赖公开契约:dsh.bundle / dsh.client 清单、ctx.slots 席位注册、ctx.effect、ctx.locale、 ctx.sessionProjections 投影注册,以及内置的 modelSelection / tokenUsage 会话投影。
  • 不 require 任何 Harness Client 包,只从平台模块表取 react;Harness 升级时受影响的只有主题 token 的观感。
  • 未验证项:仓库内没有提交界面截图(0.1.x 已在 DSH Desktop 上确认可以正常渲染并刷新,0.3.0 的界面与 Host 端投影待一次重启后确认)。

开发

无构建步骤,也没有任何运行时依赖。

npm run check   # 语法检查
npm test        # 84 项测试(Host 投影 21 + 客户端渲染 63)

test/projection-check.mjs 直接折叠合成事件,验证 Host 投影的峰谷归档、重试替换、 引用稳定与 schema 校验(21 项)。

test/render-check.mjs 用最小 React 运行时真正执行 client.js 的注册与渲染路径(63 项), 覆盖:条形只有三格、展开面板只有当前单价且不含任何说明性噪音、工作日高峰 / 午休 / 09:00 前 / 18:00 后 / 周末 / 国庆节 / 中秋节的时段判定、空闲半价、Pro 与旧模型名、 分时段精确金额、投影缺失时的估算兜底、无用量占位、非 DeepSeek 路由。

这是纯逻辑回归测试,不构成对运行中 UI 的视觉验证。

变更记录

  • 0.4.0 —— 展开面板砍到只剩当前实时单价;条形保持三格。
  • 0.3.0 —— 会话金额回归,但改成 Host 端 deepseekLivePricing 投影按每条请求的发生时刻分桶,修掉 0.1.x 因客户端窗口分页导致的偏差;条形精简为「时段 + 模型 + 本会话金额」三格;新增分时段金额明细与审计数字。
  • 0.2.0 —— 移除消费金额计算与 tokenUsage 依赖,改为纯时段 / 节假日 / 单价提示条;新增「今日时段」与官方美元价目对照。
  • 0.1.0 —— 首版:时段、节假日、单价与会话花费。

目录结构

.
├── package.json              # 清单:dsh.bundle.patch + dsh.client
├── cordis.patch.yml          # 插入 deepseek-pricing 这一行 Loader 条目
├── index.js                  # Host half:注册 deepseekLivePricing 投影,按事件时刻分峰谷桶
├── client.js                 # Client half:峰谷判定、节假日、金额与渲染
├── icon.svg
├── locale/{zh,en}.json
├── test/projection-check.mjs # Host 投影单测
├── test/render-check.mjs     # 客户端渲染单测
└── .github/workflows/ci.yml

许可

MIT © 2026 xqtx9527

本项目是独立的社区插件,与 DeepSeek 官方无隶属关系。DeepSeek、DeepSeek Harness 是 DeepSeek 的商标。