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 倉庫。

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

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

小夜