DSH-PeakHoursHint-WhenSendingMessage:发消息前在输入框提示峰谷计费时段

前言

用 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,且非法定节假日 高峰价
低谷 周末、法定节假日全天、工作日窗口外其余时间 低谷价(半价档)

判定使用的时区、工作日、高峰窗口、节假日表均可配置;默认值即上表。

核心功能

  1. 占位符尾句:效果类似「描述你想要构建的内容, / 调用指令, @ 文件或对话 · 现在高峰时段」。样式沿用宿主 @deepseek-ai/dsh-client-ui-conversation 的占位符,只追加尾巴。
  2. 只读路由:GET /plugin-peak-hint/state 返回 JSON,phase 为 peak / offpeak,reason 为 weekend / holiday / window / outside-window 等。
  3. 客户端自检上报:GET /plugin-peak-hint/ping 记录浏览器半边是否 ready 或 effect-failed;state 响应里可带最近一次 client 上报,便于桌面壳无 devtools 时排查。
  4. 自动刷新:每 30 秒向 Host 重新拉取;页面从后台回到前台立即刷新;跨过窗口边界自动换词。
  5. 语言跟随界面:中文 / 英文文案见仓库 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 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye