前言¶
在 DeepSeek Harness(DSH)環境中,當同時使用多家供應商的模型時,需要知道當前供應商的剩餘額度與本機調用統計,但側欄默認不提供這些信息。手動去各個服務商的控制台或日誌裏翻閱既耗時又容易遺漏。dsh-model-usage 插件在側欄底部常駐一個卡片,展示當前供應商的額度摘要,並打開一個雙列詳情彈窗,彙總本機用量與歷史統計。
是什麼¶
dsh-model-usage 是一個 DSH Web 插件,由維護者 Antecer 開發,使用 MIT 許可證。它在 DSH 側欄底部展示模型供應商的額度與本機用量統計,支持多供應商自動識別、零配置憑據複用、峯谷時段提示與官方價格校驗等功能。
核心功能¶
側欄底部入口¶
插件在側欄底部常駐一個卡片,跟隨當前前臺對話的供應商(新建對話時立即跟隨 DSH 默認模型)。卡片展示供應商圖標、名稱與額度摘要。當沒有識別結果時,展示狀態最緊急的供應商。
賬號菜單聯動¶
當左下角賬號菜單彈出時,側欄卡片會自動隱藏;菜單關閉後恢復。這樣可以避免卡片遮擋向上彈出的菜單。
冷啓動首屏¶
插件會緩存上次的快照到 localStorage,在冷啓動時立即回顯(如果已過期則標明)。首次快照返回前先渲染骨架卡片。請求失敗時自動退避重試,避免 DSH 冷啓動後側欄底部長時間空白。
峯谷時段提示¶
在 DeepSeek 官方供應商卡片上顯示當前峯/谷時段與距下次切換的時長。工作日 9:00–12:00、14:00–18:00 爲高峯,其餘時段(含週末與法定節假日)爲空閒。節假日表自動從 timor.tech 拉取。Host 側每 12 小時校驗一次官方價格表,發現配置不一致時會彈窗提醒。
雙列詳情彈窗¶
詳情彈窗分爲左右兩列:左列是供應商卡片(可獨立刷新),右列固定摘要與統計(限高 74vh,下半滾動)。
右欄固定摘要¶
右欄包含四張統計卡:今日、本週、本月、全部。此外還提供近 12 個月用量熱力圖,懸停時顯示實測鉗位提示。
四個統計分區¶
統計分區按以下順序排列:會話統計 → 模型統計(行可展開每次調用)→ 渠道統計 → 歷史統計(按日新到舊)。統一信息列顯示調用次數 / 輸入 tokens / 緩存 tokens / 輸出 tokens。範圍可選今日 / 本週 / 本月 / 全部(日曆口徑)。UI 偏好(範圍與各分區展開態)通過 localStorage 持久化。
額度數據¶
額度數據來自服務商接口返回的真實值:剩餘額度 / 餘額 / 訂閱窗口(按 5h → 日 → 周 → 月排列)。還會顯示重置倒計時,並根據餘量顯示不同顏色:≥60% 藍 / ≥30% 綠 / ≥5% 橘 / <5% 亮紅。
GLM Coding Plan 額度重置¶
插件支持 GLM Coding Plan 額度重置(與 ZCode 客戶端共享登錄憑據)。5h/周窗口會顯示「重置 N」按鈕,點擊彈出「可重置額度」彈窗(當前額度卡片 + 重置行),二次確認後覈銷。未登錄 ZCode 時可內嵌 OAuth 登錄並回寫共享憑據。
sub2api 中繼自動識別¶
插件從 DSH profile 讀取供應商 baseURL 與憑據引用,自動探測 GET /v1/usage 接口,無需手動配置。
零配置憑據複用¶
查詢模板按 profile 中的 baseURL 自動匹配(host 精確匹配)。憑據直接複用 provider 的 apiKeyEnv,多賬號互不串號。credentials / adapters 只在需要覆蓋默認行爲時才配置。插件 Host 進程沒有 profile 環境變量時,按當前 llm 路由命中數自動識別正在運行的 profile。
卡片摘要模板¶
卡片摘要可以通過 card.template 自定義排列。可用變量包括 {name}、{route}、{plan}、{remaining}、{limit}、{used}、{usedPct}、{window}、{leftPct}、{resetIn}、{balance}、{currency}。
安裝與啓用¶
要求¶
DSH 版本需滿足 >= 0.2.0-rc.2 < 0.3.0。
從插件市場安裝¶
- 打開「插件 → 實驗性插件 → 更多 → 自定義插件市場」,啓用後在「發現」裏點「添加索引源」。
- 粘貼索引地址:
https://antecer.github.io/dsh-model-usage/index.json
- 搜索
Model Usage並安裝。
從 npm 安裝¶
dsh plugin --profile <profile> add @antecer/dsh-model-usage
從 Git 安裝¶
dsh plugin --profile <profile> add "git+https://github.com/Antecer/dsh-model-usage.git#d90145bd58c63a47cb7d6b62c1a9ef1f4e6f957c"
從本地源碼安裝¶
dsh plugin --profile <profile> add link:/path/to/dsh-model-usage
安裝後重啓宿主並刷新頁面。
改動生效方式¶
- 界面改動(
lib/client.js):刷新頁面即可生效。 - Host 取數與賬本邏輯(
lib/index.mjs、lib/adapters.mjs、lib/profile.mjs、lib/ledger.mjs、lib/zcode/*.mjs):在插件列表裏重啓本插件即可,無需重啓整個應用。 - profile 配置(
cordis.patch.yml):插件側 60 秒內自動感知;聊天側的 provider 變更需重載宿主。
配置說明¶
在 cordis.patch.yml 中 model-usage 行的 config 下可配置以下字段:
| 鍵 | 默認值 | 說明 |
|---|---|---|
refreshSeconds |
60 | 額度刷新間隔(秒,最小 1) |
footer |
true | 是否顯示側欄底部入口 |
credentials |
{} |
按路由覆蓋憑據引用(可選) |
adapters |
{} |
按路由顯式指定查詢模板(可選) |
sub2api |
{} |
按路由顯式指定 sub2api 端點(可選) |
glm |
{} |
GLM 高級參數(可選) |
card.template |
"" |
卡片摘要模板字符串(可選) |
pricing |
官方默認值 | DeepSeek 峯谷規則與單價(可選) |
適配器自動識別¶
查詢模板按以下優先級解析:adapters 顯式指定 → profile 中 provider 的 baseURL 匹配內置模板(host 精確匹配)→ 內置路由名匹配 → sub2api 探測。內置模板覆蓋 Kimi Coding、Moonshot、GLM Coding、DeepSeek、OpenRouter、MiniMax、OpenCode Go、小米 MiMo 等。
峯谷提示與官方價格校驗¶
DeepSeek 官方計費規則內置在 pricing 配置裏,默認值即當前官方價。節假日表來自 https://timor.tech/api/holiday/year/<年>。Host 側每 12 小時抓取一次官方中文定價頁並與 pricing 比對,發現差異時彈窗列出「配置值 → 官方值」。
卡片模板示例¶
config:
card:
template: "{name} 剩 {remaining}({window} {leftPct})"
數據口徑¶
- 額度:服務商接口返回的真實值(剩餘額度 / 餘額 / 窗口已用百分比)。
- 本機用量:
assistant/message事件中服務商回傳的 usage(input + cacheRead + cacheWrite + output;tokens = 四項合計,緩存 tokens = cacheRead + cacheWrite)。 - 統計維度:按供應商/模型(渠道、模型統計)、按會話(記錄會話 id,標題經 sessions 服務實時解析)、按日(歷史統計,新到舊)。
- 統計範圍:今日 / 本週(週一起)/ 本月(1 號起)/ 全部。統計僅包含本機、插件啓用後寫入會話日誌的調用。
- 賬本文件:
$DSH_HOME/model-usage/ledger.json(按日聚合保留 180 天,熱力圖讀取最近 364 天)。 - 不做金額估算:訂閱套餐按套餐額度計費,金額以服務商賬單爲準。
安全¶
- API Key 只在 Host 內存中解析使用,不進入瀏覽器,任何 RPC 響應都不含密鑰。
- 內置適配器只請求寫死的服務商域名;sub2api 探測只訪問 profile 中用戶自己配置的供應商 baseURL。
- 錯誤信息脫敏(
sk-*/Bearer *等憑據形態會被打碼)。 - 賬本只存用量聚合數字,不含對話內容。
適用場景與注意¶
適合需要實時查看多家模型供應商剩餘額度與本機調用統計的 DSH 用戶。安裝前建議檢查源碼與許可證(MIT)。插件以當前 DSH 進程權限運行,安裝前應確認來源可靠。
總結¶
dsh-model-usage 在側欄底部常駐顯示模型供應商的額度與本機用量,提供峯谷提示、官方價格校驗與零配置憑據複用等功能,適合在多供應商環境下快速掌握資源使用情況。
- 目錄頁:https://www.skillhub.cn/plugins/Antecer/dsh-model-usage
- GitHub:https://github.com/Antecer/dsh-model-usage