dsh-opencode-usage:OpenCode Go 按模型用量與多賬戶設置頁

前言

在 DeepSeek Harness(DSH)裏走 OpenCode Go 時,官方 /inference/go/v1/usage 只給一組四捨五入的 rolling / weekly / monthly 百分比,且不區分模型;實際套餐卻是按模型分別計額度。多賬戶輪換又往往交給另一個插件維護狀態文件。若要在設置裏一眼看到「每個模型本月還剩多少、本週燒了多少」,並在同一頁管理賬戶池,就需要把會話日誌、官方額度快照和賬戶路由讀在一起展示。下面介紹社區插件 2869949486/dsh-opencode-usage(npm 包名 dsh-opencode-usage-settings,當前版本 1.4.1)的做法。

這是什麼

維護者 GitHub 用戶 2869949486,分類爲客戶端,同時在 Host 側暴露 JSON 接口。一句話定位:在 DSH 設置裏提供「OpenCode 賬戶與用量」頁面,按模型統計 OpenCode Go 套餐用量與剩餘額度,並逐個賬戶展示官方額度;賬戶池數據只讀 dsh-opencode-quota-router 的狀態文件,管理操作走該路由插件的 HTTP 接口。

插件簡介(目錄頁):DSH plugin: per-model OpenCode Go usage and remaining allowance in a Settings page。完整能力以 GitHub README 爲準。

核心功能

設置頁(客戶端)

頁面掛在 DSH 設置 → OpenCode 賬戶與用量(settings.section 槽位),依賴 @deepseek-ai/dsh-client-ui-settings 注入,Web 端 immediately: true 加載。

  • 每 60 秒自動刷新;右上角有「立即刷新」。
  • 模型相關表格以「本月剩餘 / 本月用量 / 本週用量」爲列頭;表格支持按住左右拖動。
  • 頁面上還有「此刻用哪個更划算」類卡片:按每 100 萬輸出 tokens 折算金額,匯率默認 cnyPerUsd 爲 7.1(可在 cordis.patch.yml 修改)。

數據接口(Host)

設置頁數據源:

GET /opencode-usage.json

需要先用官方接口拉一次額度快照時:

GET /opencode-usage.json?refresh=1

價格與峯谷相關信息:

GET /opencode-usage.prices.json

(價格 JSON 在 README 中與 peak.chinaHolidays、下游賬本對齊有關;具體字段以倉庫爲準。)

數據接口只監聽迴環地址;插件路由本身不做鑑權,部署時需注意本機訪問邊界。

多賬戶與賬戶管理

賬戶池由 dsh-opencode-quota-router 擁有,狀態文件路徑爲 $DSH_HOME/opencode-quota-router.json。本插件只讀該文件獲取賬戶列表;增刪改、探測、排序等管理通過 GET|POST /opencode-quota-router.json(quota-router 插件提供)完成。因此在同一設置頁既能看額度,也能管賬戶。

頁面上主要包括:

  1. 頂部狀態條:正常 / 全量回退 及原因、當前賬戶、下次探測;「立即探測」「重置封禁標記」。
  2. 賬戶表:掩碼後的密鑰、官方 5 小時 / 本週 / 本月百分比、狀態(可用 / 額度用盡 / 鑑權失敗 / 已停用 / 未配置)。
  3. 行內操作:設爲當前、↑ / ↓ 調順序、停用 / 啓用、改密鑰、刪除。
  4. 添加賬戶:填寫備註與 oc_sk_… 形式密鑰;密鑰寫入憑據庫,頁面僅顯示掩碼。

按順序使用的行爲(由賬戶池策略描述):當前賬戶任一窗口用盡時自動切到下一個並重試當前步驟,全部用盡纔回退備用模型。按模型的統計仍是全局的——會話日誌不區分具體用了哪個賬戶的密鑰。

狀態文件不存在時,頁面退化爲 apiKeyRef 指向的單個賬戶;兩個插件分開安裝也可各自工作。

響應裏與賬戶相關的字段包括:accounts[](id / label / keyRef / enabled / active / configured / hint / usage / usageError / checkedAt)、activeAccount、usage(當前賬戶)、usageError。

按模型用量怎麼算

官方 usage 接口無法按模型拆分,本插件自行彙總:

  1. 啓動時回掃 $DSH_HOME/sessions 下近 40 天會話日誌,取每條 assistant/message 的 usage 與 message.source(時間用事件自帶的 time)。
  2. 之後監聽 session/event,同一套 reducer 寫入內存。
  3. 金額按內置價格表(離峯 / 標準價)估算;DeepSeek 模型在 UTC 週一至週五 01–04、06–10 峯段乘 2;免費模型價格爲 0。中國法定節假日規則見下一節。
  4. 窗口起點優先用官方 resetsAt 反推,monthly 以 UTC 月初爲界。

頁面上仍會展示官方那一行百分比,供與自算結果交叉覈對。

峯谷、節假日與套餐

頁面上有兩套時鐘,用於「此刻用哪個更划算」等展示:

峯段時段 是否認中國法定節假日
OpenCode Go UTC 週一至週五 01–04、06–10 不認(節假日白天仍可能按峯段計)
DeepSeek 官方 API 北京週一至週五 09–12、14–18 認,節假日整天算谷

Go 不認節假日來自官方答覆(issue anomalyco/opencode#53071):Go pricing follows our own schedule, not DeepSeek’s holiday calendar.

內置日曆 HOLIDAYS(2026–2031)主要服務官方 API 一側:判斷「官方此刻是否谷段」、/opencode-usage.prices.json 的 peak.chinaHolidays 與下游賬本對齊,以及在 holidayAware: true 時讓歷史估算走官方口徑。默認 holidayAware: false,按模型統計金額即 Go 賬單口徑。

經濟結論(README 說明,非實測案例):Go 套餐約 $10/月換 $100 官方價額度,額度內走 OpenCode 相對官方直連約爲一折量級;峯段使額度消耗加快,但通常仍低於官方直連現價。例外包括額度用盡或某模型先觸頂(例如 Go 檔 Pro 月額度約 $15)。

cordis.patch.yml 的 plan 決定各模型月額度表,可選 go(默認)、go-plus、go-teams。官方百分比僅在額度變化 ≥1.5× 等明確場景下便於自動識別;Go $100 與 Go Teams $105 差距在估算噪聲內時以配置爲準。

安裝與啓用

已抓取 README 未給出 dsh plugin add … 一類安裝命令,此處不編造命令。一般可在 DSH 社區目錄頁查看該插件的安裝說明:

package.json 要求 DSH 引擎:

"engines": {
  "dsh": "^0.2.0-rc.1"
}

許可證:MIT。bundle 通過 cordis.patch.yml 打補丁;客戶端導出 ./client,Host 入口爲 ./index.js。

若需完整多賬戶 UI 與路由,需同時安裝並配置 dsh-opencode-quota-router;僅單賬戶時可只依賴 apiKeyRef 退化模式。

典型用法

  1. 安裝並啓用插件後,打開 DSH 設置,進入 OpenCode 賬戶與用量。
  2. 查看按模型排列的本月剩餘、本月用量、本週用量;需要時點擊「立即刷新」,或等待 60 秒自動刷新。
  3. 多賬戶場景:在「賬戶」表中設爲當前、調整順序、停用或改密鑰;通過「添加賬戶」寫入 oc_sk_… 密鑰。
  4. 需要強制同步官方額度後再看頁面數據時,可對 Host 請求:
GET /opencode-usage.json?refresh=1
  1. 調整套餐檔位或匯率時,編輯插件自帶的 cordis.patch.yml(plan、cnyPerUsd、holidayAware 等,以倉庫文件爲準)。

適用場景與注意

適合誰:在 DSH 內長期使用 OpenCode Go、需要按模型看 harness 內用量估算,並希望在設置頁統一管理 quota-router 賬戶池的開發者。

侷限(README 原文要點):

  • 只統計本 harness 發出的調用;OpenCode 官方客戶端等其它工具不計入。
  • 金額爲估算;官方百分比無法按模型拆分,頁面僅作對照展示。
  • 數據接口監聽迴環、路由無鑑權,勿暴露到不可信網絡。

安全:插件以當前 DSH 進程權限運行,會讀取 $DSH_HOME/sessions、賬戶狀態與憑據引用。安裝前請閱讀源碼與 MIT 許可證,確認密鑰與日誌訪問範圍可接受。

DSH 生態強調「一切皆插件」;skillhub.cn 上的社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-opencode-usage 把 OpenCode Go 的按模型用量估算、官方額度快照和多賬戶管理收進同一設置頁,並輔以 Host 側 opencode-usage.json 供自動化讀取。若要覈對功能細節或提交 issue,見 GitHub 倉庫 2869949486/dsh-opencode-usage;目錄入口見 skillhub 插件頁。

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

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

小夜