前言¶
DSH 的 Web 界面在輸入框(Composer)下方本來只有輪次、上下文長度這類指標,看不到這一輪會話花了多少錢、賬號餘額還剩多少。平臺側的「用量信息」統計的是近 30 天、全部會話和 API Key 的彙總,用來覈對扣費還行,用來回答「我現在這次對話用了多少錢」並不直接。
下面介紹 vacum972 維護的 @vacum972/dsh-usage-billing。它把這個缺口補上了:在輸入框下方常駐一枚膠囊,顯示本會話的消費量、剩餘餘額、API 請求次數、Tokens 與當前時段的官方價目。
這是什麼¶
vacum972/dsh-usage-billing 是一個客戶端分類的 DSH Web 插件,維護者 vacum972,許可證 MIT,當前版本 0.1.3,要求 DSH >=0.2.1-rc.5 <0.3.0-0。定位一句話:在會話過程中實時呈現本會話的用量與成本,而不是事後翻平臺賬單。
核心功能¶
下面按倉庫 README 裏已寫明的能力依次說明。
- 本會話用量膠囊:膠囊常駐在輸入框下方、宿主自帶輪次/上下文指標右側,點開是詳情彈窗,展示消費金額、剩餘金額、API 請求次數、Tokens 總計、平均成本、高峯/空閒時段消費拆分,以及當前時段生效的官方價目。
- 按官方峯谷價目逐次請求計價:每次模型請求按它發生時刻的時段(高峯/空閒)計價,切換時段不重算曆史請求。高峯價與空閒價遵循 DeepSeek 官方規則:空閒價是高峯價的一半。
- 價目自動校準:Host 定期拉取 DeepSeek 官方價目文檔並解析模型價格;抓取失敗時回退到上次成功價目,並在彈窗提示,隨後每 2 分鐘自動重試,成功即恢復。
- 法定節假日日曆:自動獲取中國法定節假日,使高峯/空閒判斷與官方一致——週末和法定節假日全天爲空閒。
- 剩餘金額:讀取當前登錄賬號的充值餘額與贈送餘額之和,打開彈窗即刷新、之後每 60 秒更新,也可手動重試。
- 不干擾輸入:膠囊與彈窗樣式對齊宿主 composer 的統計控件,佈局緊湊,不遮擋輸入框。
時段與價目¶
尖峯時段按 DeepSeek 官方價目頁的規則定義:北京時間週一至週五(不含中國法定節假日)的 09:00–12:00、14:00–18:00 爲高峯;其餘時間(含週末、法定節假日全天)爲空閒,空閒價等於高峯價的一半。
出廠價目(README 記錄爲 2026-11-04 抓取,單位是元 / 百萬 tokens):
| 模型 | 輸入(緩存命中) | 輸入(緩存未命中) | 輸出 |
|---|---|---|---|
| deepseek-flash | 0.04 高峯 / 0.02 空閒 | 2 高峯 / 1 空閒 | 8 高峯 / 4 空閒 |
| deepseek-v4-pro | 0.30 高峯 / 0.15 空閒 | 9.0 高峯 / 4.5 空閒 | 27.0 高峯 / 13.5 空閒 |
正常情況下每 30 分鐘拉取一次官方價目 Markdown 與節假日日曆,失敗後每 2 分鐘重試,成功即恢復,提示條懸停可看到失敗時間與原因。
安裝與啓用¶
需要 DSH >=0.2.1-rc.5。方式 A 是 npm 一鍵安裝(推薦),用 web profile:
dsh plugin --profile web add @vacum972/dsh-usage-billing
安裝後重啓 dsh web(或刷新頁面加載客戶端包),輸入框下方就會出現膠囊。
方式 B 是從 GitHub 源碼安裝,同樣走 web profile:
dsh plugin --profile web add github:vacum972/dsh-usage-billing
Desktop 需要注意:desktop profile 由 Electron 應用獨佔,普通 npm 版 dsh CLI 會拒絕管理它。在 Desktop 上要麼通過 DSH 內的插件中心安裝 @vacum972/dsh-usage-billing,要麼用 Desktop 自帶的 CLI 以本地路徑安裝,命令形如:
dsh plugin --profile desktop add link:<本倉庫路徑>
配置¶
配置掛在插件行的 config 上,出廠值見 cordis.patch.yml。在 profile 的 cordis.patch.yml 追加同 id 的行即可覆蓋;補丁會整體替換 config,所以想保留的鍵都要寫全。完整出廠配置如下:
- id: usage-billing
name: '@vacum972/dsh-usage-billing'
config:
currency: CNY
timeZone: Asia/Shanghai
peakWindows: ['09:00-12:00', '14:00-18:00']
peakWeekdays: [1, 2, 3, 4, 5]
holidays: [] # 額外節假日;留空則只用自動抓取的日曆
autoRefresh: true
refreshMinutes: 30
priceUrl: 'https://api-docs.deepseek.com/zh-cn/quick_start/pricing.md'
holidayUrl: 'https://timor.tech/api/holiday/year/{year}'
default: # 未列出的模型使用這一行
peak: { cacheRead: 0.04, cacheMiss: 2, cacheWrite: 0, output: 8 }
idle: { cacheRead: 0.02, cacheMiss: 1, cacheWrite: 0, output: 4 }
models:
deepseek-flash:
peak: { cacheRead: 0.04, cacheMiss: 2, cacheWrite: 0, output: 8 }
idle: { cacheRead: 0.02, cacheMiss: 1, cacheWrite: 0, output: 4 }
deepseek-v4-pro:
peak: { cacheRead: 0.3, cacheMiss: 9.0, cacheWrite: 0, output: 27.0 }
idle: { cacheRead: 0.15, cacheMiss: 4.5, cacheWrite: 0, output: 13.5 }
單價單位是 currency / 百萬 tokens。DeepSeek 不單獨計緩存寫入費,所以 cacheWrite: 0。autoRefresh: false 可以完全關閉聯網刷新,只使用配置裏的價目和 holidays。切換其他時區或供應商時,改 timeZone、peakWindows、priceUrl、holidayUrl 即可。
計費口徑與差異說明¶
請求次數方面:每次模型調用結束(assistant/message)或失敗/被中止(assistant/attempt)都計一次。token 只採用供應商在會話日誌裏上報的 usage,同一嘗試的最終樣本會替換流式樣本,llm/retry-started 之後的嘗試重新計一次,與 DSH 內置 tokenUsage 投影口徑一致。
成本方面:每次嘗試的 token 先用該次請求日誌時間對應的時段價目計價,再累加。單次成本按「輸入×未命中單價+緩存讀×命中單價+緩存寫×寫入單價+輸出×輸出單價」再除以 1,000,000 計算;同一嘗試的樣本被替換時按新樣本重算該次成本。
這些數值是估算值,不包含 Search/Fetch 等獨立 API 的按次費用、供應商調價窗口差、優惠等,實際扣費以 DeepSeek 賬單爲準。
插件與平臺「用量信息」數值不同是預期行爲:插件統計本會話,平臺統計近 30 天、全部會話/API Key。README 給出了一個開發環境同刻對照:
| 口徑 | API 請求次數 | Tokens | 消費金額 |
|---|---|---|---|
| 插件(本會話) | 299 | 78,677,354 | ¥3.22(估算) |
| 平臺(近 30 天) | 488 | 103,214,039 | ¥6.21(賬單) |
同一時刻把本機所有會話投影裏的 tokenUsage 相加得到 102,263,277,與平臺 103,214,039 相差約 0.9%(平臺數據有約 5 分鐘延遲),說明 token 計數與平臺同源,差異來自統計範圍;請求次數與金額還包含其它會話/其它 Key、重試計次差異,以及插件不統計的 Search/Fetch 按次費用。彈窗底部提供了「查看平臺用量 ↗」鏈接。
隱私與外部服務¶
插件不保存、不讀取、不上傳任何 API Key;剩餘金額通過 DSH 已登錄賬號的賬戶服務讀取,token 只在 Host 內部使用。運行時只訪問兩個公開地址:DeepSeek 官方價目文檔與 timor.tech 節假日日曆,可用 autoRefresh: false 完全關閉。沒有遙測和第三方上報,會話用量全部在本地按會話日誌計算。
適用場景與注意¶
適合需要在會話過程中即時看到本會話消耗、或按高峯/空閒時段覈對成本的 DSH Web / Desktop 使用者。
有幾點要留意。第一,插件代碼以當前 dsh 進程的權限運行,安裝前應檢查源碼與 MIT 許可證。第二,它使用了 DSH 客戶端會話投影與賬戶 Remote 接口,屬於較內部接口,DSH 升級後如出現兼容問題,可在倉庫提 Issue。第三,它不統計 Search/Fetch 等獨立 API 的按次費用,也不代表官方賬單口徑。第四,官方價目和節假日緩存會定期更新,離線或網絡失敗時會回退到上次成功數據。
小結¶
vacum972/dsh-usage-billing 把「本會話花了多少、還剩多少」直接放到輸入框旁,按官方峯谷價目逐次請求計價,並用本會話日誌而非平臺彙總來算 token,屬於思路清楚、實現剋制的客戶端插件。目錄頁在 https://www.skillhub.cn/plugins/vacum972/dsh-usage-billing ,源碼和說明在 https://github.com/vacum972/dsh-usage-billing 。