前言¶
用 DeepSeek API 时,计费按北京时间分高峰价与低谷价(半价档)。窗口在工作日 09:00–12:00、14:00–18:00,其余含周末、法定节假日、午休与深夜走低谷价。规则写在文档里,但每次在 DSH 输入框发消息前并不显眼。
下面介绍社区插件 DSH-PeakHoursHint-WhenSendingMessage(包名 dsh-peak-hours-hint):在宿主输入框占位符浅色提示文字末尾追加「现在高峰时段」或「现在低谷时段」(英文界面为 peak hours now / off-peak hours),发出去之前就能对上当前应采用的价档。
这是什么¶
维护者 xkzdwb。插件在 SkillHub 目录 与 GitHub 仓库 发布,MIT 许可,当前版本 1.0.0,要求 Node >=20。
实现上拆成 Host 与 Client 两半:Host 只读判定峰谷并暴露 HTTP 路由;Client 轮询状态,给占位符 DOM 加 data-peak-phase / data-peak-hint,由 CSS ::after 拼出尾句。Host 仅 node: 内置模块,Client 不 import 任何裸包名,便于按 DSH bundle 方式加载。
| 状态 | 时间(默认) | 计费 |
|---|---|---|
| 高峰 | 北京时间周一至周五 09:00–12:00、14:00–18:00,且非法定节假日 | 高峰价 |
| 低谷 | 周末、法定节假日全天、工作日窗口外其余时间 | 低谷价(半价档) |
判定使用的时区、工作日、高峰窗口、节假日表均可配置;默认值即上表。
核心功能¶
- 占位符尾句:效果类似「描述你想要构建的内容, / 调用指令, @ 文件或对话 · 现在高峰时段」。样式沿用宿主
@deepseek-ai/dsh-client-ui-conversation的占位符,只追加尾巴。 - 只读路由:
GET /plugin-peak-hint/state返回 JSON,phase为peak/offpeak,reason为weekend/holiday/window/outside-window等。 - 客户端自检上报:
GET /plugin-peak-hint/ping记录浏览器半边是否ready或effect-failed;state响应里可带最近一次client上报,便于桌面壳无 devtools 时排查。 - 自动刷新:每 30 秒向 Host 重新拉取;页面从后台回到前台立即刷新;跨过窗口边界自动换词。
- 语言跟随界面:中文 / 英文文案见仓库
locale/zh.json、locale/en.json。
仓库还提供离线测试(test/run-tests.mjs)与静态资源自检(tools/check-assets.mjs),可不装 DSH 先跑通峰谷判定与客户端 bundle 契约。
安装与启用¶
官方 README 未提供 dsh plugin add github:... 一类命令;装进 profile 有两种写法,改完后重启 DSH(Host 在启动时装载),再刷新页面(Client 在页面加载时取)。细节见仓库 examples/cordis.patch.snippet.yml。
A. 作为包(推荐):在 profile 的 package.json 里加 link: 依赖,并把包名放进 dsh.profile.bundles;包自带 cordis.patch.yml 会挂 Host 行。
{
"dependencies": {
"dsh-peak-hours-hint": "link:P:/path/to/DSH-PeakHoursHint-WhenSendingMessage"
},
"dsh": {
"profile": {
"bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-peak-hours-hint"]
}
}
}
将 link: 路径改为你本机克隆或解压后的仓库绝对路径。
B. 只加 patch 行:把 snippet 中的 - insert: 段追加到 ~/.dsh/profiles/<profile>/cordis.patch.yml,name 写本仓库 index.js 的绝对路径。
装好后侧栏插件列表会出现「峰谷提示 / Peak Hours Hint」。插件以当前 DSH 进程权限运行;安装前请自行通读源码并确认 MIT 许可与路由行为是否符合预期。
配置项¶
配置写在包内 cordis.patch.yml 引入的四个键上:
| 键 | 默认 | 说明 |
|---|---|---|
timeZone |
Asia/Shanghai |
判定高峰所用的时区 |
weekdays |
[1,2,3,4,5] |
工作日(0=周日 … 6=周六) |
windows |
09:00-12:00、14:00-18:00 |
高峰窗口,左闭右开;24:00 表示到当天结束 |
holidaysPath |
空 | 空则用包内 cn-holidays.json;填绝对路径则读该文件 |
窗口格式错误会被丢弃并回落默认窗口。自定义节假日表读失败时退回包内副本,并在 state 的 holidayError 里说明原因。
典型用法与自检¶
在 DSH 正常运行且已刷新页面后,打开任意会话,输入框为空时即可在占位符末尾看到峰谷提示。有草稿时占位符不显示,这是宿主逻辑,提示随之不可见。
没有浏览器控制台时,可用 curl 看 Host 判定与 Client 是否就绪(默认监听端口以你本机 DSH 为准,README 示例为 12484):
curl -s http://127.0.0.1:12484/plugin-peak-hint/state
响应中若无 client 字段,通常表示页面尚未刷新、仍在跑旧 bundle;若有 client.error,错误文本在其中。离线验证可在仓库根目录执行:
node test/run-tests.mjs
node tools/check-assets.mjs
适用场景与注意¶
适合长期在 DSH 里用 DeepSeek API、希望发消息前对峰谷价档有直观提示的开发者。它不替代官方定价页,也不保证与你路由里实际选用的 provider 一致——只按可配置的计费窗口判定;若路由与 DeepSeek 分时规则脱钩,提示也会不准。
已知边界:窄屏下单行占位符可能截断尾部(宿主 nowrap 布局);cn-holidays.json 为静态数据,国务院节假日安排公布后需自行更新;普通输入框与 Hero 两行布局行为略有差异。
社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,属 DSH「一切皆插件」生态中的第三方扩展。
结尾¶
DSH-PeakHoursHint-WhenSendingMessage 把「此刻算高峰还是低谷」写进你本来就要看的输入提示里,零依赖、只读路由加 data 属性,改动面小。需要目录说明与源码时,可访问 SkillHub 插件页 与 GitHub 仓库。