前言¶
在 DSH Web 里写会话时,界面自带的统计药丸会显示耗时和 token,但不会告诉你账号还剩多少钱、这一轮对话大概花了多少。要去「设置 → 账户」或平台页面查余额,又要打断当前节奏。若你希望在输入区旁边持续看到余额与「本次会话」的额度变化,并顺带感知当前是高峰还是空闲计价时段,社区插件 dsh-quota-pill 就是针对这一痛点的客户端方案。
这是什么¶
dsh-quota-pill(目录名 jiangluoyiyi/dsh-quota-pill)由维护者 jiangluoyiyi 发布,分类为客户端。简介为:在 composer dock 中展示 DeepSeek 账号余额与按 Session 统计的消耗。
它是一个本地 bundle:装进当前 profile 后对所有会话生效,只跑客户端半边,不注册 Host 服务、不下发工具、也不进入模型上下文。药丸挂在 conversation.composer.dock,用独立 id quota(order: 10)排在 DSH 自带 stats 药丸之后。
药丸与展开卡片¶
Composer 下方常驻一行,与自带统计药丸并排,例如:
谷 余额¥8.75 │ 消耗¥0.42
- 峰 / 谷:
峰表示高峰时段(价格翻倍、警示色);谷表示空闲时段(半价、弱化灰)。 - 两个数值使用等宽数字(
tabular-nums),避免位数变化时左右抖动。 - 消耗尚未结算时显示
消耗—,药丸宽度保持稳定;版本号不占药丸,只在展开卡片里显示。
点击药丸可展开明细,包含余额分项、本次会话消耗、当前时段与三项单价(规则说明留在 README,不占卡片空间)。排版上数值右对齐、单价两位小数,单位以灰色小字标注「元 / 百万 tokens」。
核心功能¶
| 显示项 | 含义 | 数据来源 |
|---|---|---|
| 余额 | 可用余额合计(充值钱包 + 赠送额度,按币种相加) | Host ctx.remote.account.getBalance() |
| 消耗 | 进入该会话时记录基线余额,与当前余额的差值 | 本地计算 |
| 峰 / 谷 | 当前高峰或空闲 | 本地按北京时间判定 |
| 充值钱包 / 赠送额度 | 分项,保留平台币种(¥ / $) |
同 getBalance |
| 时段与单价 | 当前时段、剩余倒计时、缓存命中 / 未命中 / 输出单价 | 内置 PRICE_TABLE |
| 版本号 | 当前页面加载的 bundle 版本 | 构建常量,在卡片操作行 |
余额数据与「设置 → 账户」同源,底层为 GET https://platform.deepseek.com/api/v0/users/get_user_summary,鉴权由 Host 保管,不进入浏览器。
峰谷规则(与 官方模型 & 价格 对齐):北京时间周一至周五 9:00–12:00、14:00–18:00 为高峰,其余(含周末)为空闲;空闲价为高峰价的一半。卡片内标价表覆盖 deepseek-flash 与 deepseek-v4-pro 两套单价。插件如实说明:标价不等于实际扣费;默认按 deepseek-flash 取价,可用 globalThis.__DSH_QUOTA_PILL_MODEL__ = 'deepseek-v4-pro' 覆盖;法定节假日未从高峰判定中排除;价格变动需同步 client.js 中的表并由验证脚本校验。
未登录、读取失败、余额为 0 等各有可读状态,不会把失败伪装成 0 余额。
刷新与状态¶
| 场景 | 行为 |
|---|---|
| 首次挂载 | 立即读一次 |
| 空闲 | 每 45s |
| 会话运行中 | 每 20s |
| 一轮结束 | 4s 后补读 |
| 读取失败 | 20s → 60s → 120s 退避 |
| 展开卡片 | 额外 getState() 自检 |
同一页面只有一个读取循环;切换会话不会重启。调用失败时保留上一次成功读数并标为陈旧。
安装与启用¶
本机开发目录(仓库已链接进 profile):
plugin_manager { action: "install_bundle", target: "<本目录绝对路径>" }
从 GitHub 安装:
plugin_manager { action: "install_bundle", target: "https://github.com/jiangluoyiyi/dsh-quota-pill" }
安装后硬刷新页面(Ctrl+Shift+R 或菜单重载)才会看到药丸。之后代码改动由宿主 bundle 轮询(默认约 500ms 比较 mtime/ctime/size)推送到已打开页面。判断是否加载到最新代码:点开卡片,底部灰字 vX.Y.Z 为准(当前 package 版本为 0.1.9);药丸本身不显示版本号。
典型用法与可选配置¶
- 按上文执行
install_bundle并刷新页面,登录 DeepSeek 账号(非仅 API key)后即可在 composer 下方看到药丸。 - 若默认模型为
deepseek-v4-pro,在加载 bundle 前设置:
globalThis.__DSH_QUOTA_PILL_MODEL__ = 'deepseek-v4-pro';
卡片不显示模型名,换模型后单价会随之变化。
本地离线验证(不替代浏览器实测):
node verify/verify-quota-pill.mjs
适用场景与注意¶
适合谁:长期在 DSH Web 里跑会话、希望一眼看到账号余额、本会话大概花了多少、以及当前是否处于高峰计价的开发者。
权限与安全:插件以当前 DSH 进程权限运行,安装前应阅读 GitHub 仓库 源码与许可证,自行判断是否信任维护者 jiangluoyiyi。社区目录 SkillHub 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系。
已知限制(README 原文要点):
- 「本次会话」是本地测量:平台不提供会话级账单;其他窗口、设备或 API 扣费也会计入差额。
- 刷新页面后基线重新累计;多会话同时运行时差额无法归属到单个会话。
- 仅用 API key、未账号登录时,
getBalance为null,显示「未登录账号」。
开发集成时注意:getBalance 入参须为严格的 AccountClientMetadata(version, locale, timezoneOffsetSeconds);Remote 返回 { ok, value } 信封,业务数据在 value 内,勿直接读顶层 status。
结尾¶
dsh-quota-pill 把账户余额、会话级消耗估算和峰谷单价提示收进 composer dock 一颗药丸,减少切页查账的次数。需要安装命令、价格表与契约细节时,以仓库 README 为准。