DSH Web 界面默认显示 Session 信息和 Token 用量。开发者常需要快速了解单次对话的成本。dsh-usage-dock 插件在输入框下方的统计药丸行中追加一颗仅显示金额的药丸,方便快速概览。它由 aliensweety 维护,属于联网工具类别,采用 MIT 许可证。
核心功能¶
该插件主要提供以下能力:
- 追加成本药丸:在官方 Session 信息与 Token 用量药丸后面,并排追加一颗仅显示金额的药丸。三粒药丸作为一组居中显示,样式与官方药丸保持一致。
- 双档位费用显示:根据当前时段(高峰或空闲)自动计算并显示费用。在展开面板中,会同时列出高峰价与空闲价两档费用。
- 基于投影计算:使用 DSH 内置的
tokenUsage投影进行计算。不读取会话日志文件,不发网络请求,不触碰任何凭证。 - 特定路由与模型支持:只对
deepseek-official路由计价。自动识别deepseek-v4-pro与deepseek-v4.1-flash(含deepseek-flash)模型,按各自价目表计费。 - 点击查看明细:点击成本药丸,会打开官方的 Token 用量卡片,其中追加显示了高峰价、空闲价、缓存命中率等详细信息。
安装与启用¶
从 GitHub 安装(推荐锁定版本):
dsh plugin --profile web add github:aliensweety/dsh-usage-dock#v0.4.0
本地开发使用 link 安装:
dsh plugin --profile web add D:\Ai\dsh\dsh-usage-dock
dsh plugin add 命令会将插件写入 profile 的依赖与 bundles 配置。安装后,通常 patchReload 为 live,热挂载即可生效;若未生效,重启 dsh web 并强刷浏览器。
使用方法¶
安装完成后,在 DSH Web 界面的输入框下方,你会看到统计药丸行变为三粒一组:
[ Session 信息 ] [ Token 用量 ] [¥ 0.47]
点开金额药丸,会展开官方的 Token 用量卡片,其中包含以下信息:
* 四个 Token 桶:未缓存输入、缓存读取、缓存写入、输出。
* 总计与费用明细。
* 缓存命中率。
* 高峰价与空闲价两档费用。
自定义价格:如果在 Web 控制台执行以下命令,可调整计费价格(对所有已计价模型生效,参数填写高峰价):
localStorage.setItem('dsh-usage-dock.pricing', JSON.stringify({ miss: 2, hit: 0.04, out: 8, write: 0 }))
删除该 key 即恢复内置价格。
计价规则与技术细节¶
- 计价范围:仅对
deepseek-official路由计价。如果lastUsed.provider为其他路由,药丸不渲染。 - 缓存写入不计价:默认计费为 0,因为官方价格表未单独定义缓存写入价。
- 价格档位:
- 高峰时段:工作日 9:00–12:00、14:00–18:00。
- 空闲时段:其余时间(含夜间与周末),按高峰价的一半计。
deepseek-v4-pro:高峰输入 9、缓存命中 0.30、输出 27;空闲为上述数值的一半。deepseek-v4.1-flash:高峰输入 2、缓存命中 0.04、输出 8;空闲为上述数值的一半。
- 估算值:金额为估算值。如果会话中途切换了模型,或跨过了高峰/空闲时段,真实费用介于面板中两档价格之间,药丸仅按当前时刻显示其中一档。
- 技术实现:不依赖 React 打包,而是使用宿主注入的虚拟 React。通过
ReactDOM.createPortal将药丸直接渲染进官方药丸行的 DOM 中,确保自动对齐间距。如果找不到官方那一排药丸,药丸会退回到自己一行居中的状态。
验证与安全¶
验证步骤:
1. 在已安装插件的上装浏览器中强刷界面(Ctrl+F5)。
2. 输入框下方应出现三粒药丸,右侧为金额药丸(空白会话不渲染)。
3. 点开药丸,检查 Token 桶与费用明细。
4. 在 DevTools 的 Network 面板中,确认 /plugins/dsh-usage-dock/client.js 返回 200。
安全特性:
* 不读取会话日志文件。
* 不触碰任何凭证。
* 失败安全:如果投影缺失、路由不匹配或缺少必要数据,插件会静默不渲染,不留空壳。
卸载¶
dsh plugin --profile web remove dsh-usage-dock