dsh-billing-statistics:DSH 本地計費賬本的用法

前言

接了模型 API 以後,賬單是最容易失控的一環:一次任務可能跨平臺、跨模型,事後想回答「這個月 DeepSeek 花了多少、其中峯時佔多少」往往只能靠翻後臺。控制台看的是賬號維度,看不到按平臺/模型/時間的問題拆解;自己寫腳本又容易漏掉峯谷價、緩存命中 token 和匯率折算這些細節。

dsh-billing-statistics 處理的是另一件事:把經過 DSH llm/stream 的調用原地記下來,按平臺、模型、小時匯出 token 與估算花費,並支持官方賬單逐項對齊。下面介紹它的定位、安裝、配置和典型用法。

這是什麼

插件由 SuLiuCanYing 維護,倉庫爲 dsh-billing-statistics(GitHub,MIT 許可),目錄頁登記在 community 目錄的 admin-security 分類下。定位是 DSH 的本地計費賬本:只統計和展示,不接管模型請求,也不替你登錄任何平臺。當前版本 1.13.0,兼容 DSH Web UI >=0.2.1-rc.5 <0.3.0,要求 Node.js >=20。

它和直接看官網控制台的區別是粒度:後者給你賬號總花費,前者給你每個平臺、每個模型、每個小時的調用次數、token 和價格來源標記。

核心功能

調用與 token 統計。 按平臺/模型彙總調用次數、失敗與中止次數、輸入/輸出/緩存命中 token、花費。歷史按小時桶保存(usage.json v2),當天明細可以下鑽到小時。

峯谷與階梯計價。 花費按峯谷時段與階梯價計算,峯谷判斷默認北京時間(UTC+8),可用 utcOffsetHours 調整。

6 位小數記賬。 金額按 0.000001 元記賬;面板默認顯示 1~3 位(<100 元 3 位、≥100 元 2 位、≥1000 元 1 位),金額後的眼睛按鈕可展開 6 位完整金額,再點隱藏。HTML 報表與 CSV 導出同樣按 6 位。

價格來源自動檢索與標記。 價格從 models.dev 按平臺與模型匹配,美元價按 usdToCny 折成人民幣;匹配不到時退回內置參考價,頁面上會標明每個價格來自哪裏。

DeepSeek 官方價識別。 provider 爲 deepseek / deepseek-official / deepseek-account,或 baseURL 的 host 是 api.deepseek.com 時,自動啓用官方峯谷價並內置一份價表。只對官方 API 生效,第三方平臺上的 DeepSeek 模型不套用官方價。

人工導入與 CSV。 目錄未收錄或價格不對時,可在表格裏給模型填人工單價(留空字段保持舊價),也能勾選峯時時段(如 09:00-12:00, 14:00-18:00,選每天/工作日/週末)填峯時價。也可以下載 CSV 模板用 Excel 填好導入。人工價持久化,目錄刷新不會覆蓋。

時間範圍與裁剪。 今天/近 7 天/近 30 天,另有「全部」與按年份切換;選中某年列出該年 12 個月彙總表,趨勢圖同步按月/按年展示。按小時明細保留 30 天(可調),月度彙總長期保留,年份與「全部」視圖不會隨裁剪縮水。

記賬口徑。 數據目錄 $DSH_HOME/llm-usage-insights/,usage.json 只含計數、token 與價格來源,不保存 prompt/回覆內容。寫盤用「臨時文件 + 重命名」,啓動時損壞會先備份再按空數據啓動,連備份都失敗則進入只讀模式。頁面路由僅允許同源/環回地址訪問。

安裝與啓用

無構建。README 給出的安裝方式是把目錄放進工作區,靠本地 link 依賴加載:

# 1. 把本目錄放到工作區
# 2. 在 profile 的 package.json 裏登記爲依賴(link: 形式即可)
# 3. 重啓應用,在側欄看到「計費統計」入口

依賴方面,@deepseek-ai/schemastery 是 peer 依賴(可選);PDF 導出依賴 pdfkit(已列在 package.json 的 dependencies,安裝時自動裝)。當前僅在 Windows 11 + DSH 0.2.1-rc.5 實機驗證。

從 1.12.x 升級要注意:舊包名是 dsh-billing-insights(更早是 llm-usage-insights),需先在 Plugin Manager 卸載舊 bundle 再安裝新包,避免兩個 bundle 同時註冊側欄頁面;數據目錄與 API 前綴沿用舊名,賬本不會丟。

配置:單價與時區

配置項按需覆蓋即可,默認值滿足多數場景:

配置項 默認 說明
retainDays 30 按天明細保留天數(1–3660)
showCost true 是否顯示花費列與合計
priceSync true 每天刷新一次 models.dev 價格目錄
usdToCny 7.1 美元價折人民幣的匯率
peakHolidays [] 視爲空閒時段的日期(YYYY-MM-DD,北京時間)
utcOffsetHours 8 峯谷判斷與按天分桶的時區偏移(-12 ~ +14)
pricing {} 自定義價格表,鍵可爲 provider / provider/model / *

價格匹配順序爲:自定義 pricing → 人工導入價格 → DeepSeek 官方自動價(僅官方 API)→ models.dev 目錄 → 內置參考價。也就是說,寫在配置裏的 pricing 優先級最高;同名鍵整體覆蓋 models.dev 價,全 0 視爲未定價。

一個容易忽略的點:utcOffsetHours 改變的是峯谷劃分與分桶時區,但不會重排已有分桶,舊數據仍按舊口徑統計,改動後老數據和新數據的峯谷口徑會不一致,介意的話要及早統一。

{
  "pricing": {
    "deepseek/deepseek-chat": { "input": 0.001, "output": 0.002 }
  }
}

典型用法

先讓它記上一段時間,再進側欄「計費統計」看彙總。覈對花費是否正確,推薦兩步:

1、在頁面按平臺/模型分層展開,看調用次數、token 與花費是否符合預期;小時明細可下鑽到具體小時桶,定位是哪一批請求把費用頂上去的。

2、打開頁腳「官方賬單對齊」,按平臺/日期抄入官方後臺的金額、調用次數(可選)與 token(可選),插件會與本地當天記錄逐項對比並顯示差額。官方不提供調用次數時留空即可。

第二點需要明確邊界:插件不抓取賬單、不保存賬號憑據、不代替你登錄,只是把官方數字和本地觀測放在一起,結算仍以官方賬單爲準。對齊的目的是發現漏記或口徑不一致,不是替代對賬。

導出時選擇格式、統計範圍、是否包含時間明細即可。自包含 HTML 報表是主入口,PDF 依賴本機中文字體(Windows 默認用黑體,缺少字體時會直接報錯,不會靜默生成亂碼報表),CSV 保留兼容入口。

適用場景與注意

適合這類人:模型調用已經跑在 DSH 上、想按平臺/模型/時間復盤花費、並且需要把估算和官方賬單對一下的人。如果你的調用是散在直連 API 或其他客戶端裏的,這個賬本覆蓋不到。

幾點注意:

  • 統計範圍有限。 只記錄經過 DSH llm/stream 的調用;DSH 未運行、直連 API、其他客戶端的請求不在賬本里。
  • 金額是估算。 價格來源可能是 models.dev 目錄價、內置參考價或人工價;目錄價是參考價,不保證等於你所用平臺的合同價,頁面上會標出來,介意時以人工填價爲準。
  • 不做預算攔截。 沒有日/月預算、超額阻斷、餘額查詢或自動充值,只統計和展示。
  • 多開注意。 usage.json 有 lock 做「逐字段取大」合併,同一小時的併發調用可能被少算,建議只開一個窗口。
  • 數據只在本機。 沒有云同步或多機合併;卸載不會自動刪除賬本,需要清理時手動刪目錄。
  • 來源可信度。 該插件是社區項目,以當前 DSH 進程權限運行,價格、賬單、文件讀寫都發生在本機。安裝前建議先審一遍源碼與 LICENSE,確認目錄權限、數據目錄位置和價格來源標記符合預期後再啓用。

結語

這個插件的價值在「記賬」而非「省費」:它不改變模型請求,也不會替你做預算決策,只是把已經發生的調用按平臺/模型/小時攤開,讓你能拿一個帶價格來源標記的估算數去和官方賬單逐項覈對。對需要復盤多平臺花費的人,這是目前 DSH 生態裏少有的本地方案。

目錄頁:https://www.skillhub.cn/plugins/SuLiuCanYing/dsh-billing-statistics
GitHub:https://github.com/SuLiuCanYing/dsh-billing-statistics

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

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

小夜