DeepSeek API 采用分时段计费。北京时间每天 09:00–12:00 与 14:00–18:00 为峰值时段(价格较高),其余时间为谷值时段。在 DSH Web GUI 中直接操作容易在不知不觉中跑完高成本任务,尤其是在使用 DeepSeek V4 Pro 等高价模型时。
本插件旨在解决这一问题,常驻显示当前计费时段,并在峰值时段使用特定模型时提供二次确认。
核心功能¶
常驻峰/谷徽章
插件会在 DSH Web 界面的输入框下方(conversation.composer.dock)常驻显示状态。绿点代表谷时段,橙点代表峰时段,同时显示实时北京时间与峰时段范围,每 30 秒自动刷新。
峰值时段二次确认
满足以下全部条件时,插件会在任务提交前(第一步)弹窗确认:
1. 当前为峰值时段(北京时间 09:00–12:00、14:00–18:00);
2. 当前会话使用的模型是 DeepSeek V4 Pro;
3. 是新提交的回合(子代理、工具续步或重试不会重复弹窗)。
弹窗选项
用户可选择:
* 继续使用:按当前配置立即开始任务。
* 今日不再提醒:继续使用,且在当天之内不再弹窗。该状态会写入浏览器 localStorage,跨重启持久化,直到北京时间零点自动失效。
* 取消本次:本次任务不执行,回合以 blocked 结束,消息保留在会话中。
完全 fail-open
任何判断异常(如无弹窗组件、会话异常或模型读取失败)都会直接放行,不会卡住正在运行的任务。
工作原理¶
插件通过拦截 DSH Host 侧的 agent/pre-step 事件来判断是否需要弹窗,同时通过 webServer 在宿主与浏览器间进行同源通信以同步状态。
- Host 侧:在
agent/pre-step阶段判断当前时间、模型及「今日不再提醒」状态。如果符合条件,调用userQuestions.ask弹窗。 - Client 侧:在
composer.dock渲染峰/谷徽章,并监听页面加载或连接重置事件,将浏览器的「今日不再提醒」状态同步给宿主。 - 时区:峰谷判断使用北京时间(UTC+8),由 Host 与 Client 各自独立计算,不依赖系统时区设置。
安装¶
- 克隆仓库到本地:
git clone https://github.com/Heldea-xianmiao/dsp-deepseek-peak.git
- 在你的 DSH profile(如
$DSH_HOME/profiles/web)的package.json中添加依赖与 bundle:
{
"dependencies": {
"dsp-deepseek-peak": "link:<本仓库的绝对路径>"
},
"dsh": {
"profile": {
"bundles": [ /* ...原有列表... */, "dsp-deepseek-peak" ]
}
}
}
- 在 profile 目录执行
pnpm install,然后重启 DSH。
或者使用官方命令:
dsh plugin --profile web add file:/path/to/dsp-deepseek-peak
自定义¶
插件源码位于 lib/ 目录,可根据需求修改:
| 想改什么 | 改哪里 |
|---|---|
| 峰谷时段(如改为 08:00–10:00) | lib/index.js 的 isPeakNow() 与 lib/client.js 的 isPeak() |
| 触发弹窗的模型(如只对 V4 Pro 生效) | lib/index.js 的 isDeepseekV4Pro() |
| 弹窗文案 | lib/index.js 的 askConfirmation() 中的选项与问题 |
| 徽章刷新间隔(默认 30s) | lib/client.js 中的 window.setInterval(..., 30000) |
修改后重启 DSH 生效。
隐私与兼容性¶
隐私说明
插件纯本地运行,所有计算(峰谷判断、模型判断、弹窗)都在你自己的 DSH 宿主与浏览器内完成,没有任何数据上传。浏览器侧仅使用 localStorage 存储一个日期字符串,Host 与 Client 通过 DSH 内置的 webServer 在本机回环地址通信。
兼容性
依赖宿主服务:agentDefaultModel、userQuestions、webServer、agents。
兼容 DSH Web profile(rc.6+)。
总结¶
这是一个为 DSH Web 用户设计的实用插件,旨在通过视觉提示和交互拦截,帮助开发者在高峰时段避免无意中触发高成本的 DeepSeek V4 Pro 任务。