前言¶
在使用 DeepSeek Harness(DSH)進行多輪對話時,如果會話較長,很難直觀判斷當前已花費多少。平臺後臺通常只提供總量統計,無法查看每輪的計價明細,也不支持按時段(高峯/空閒)分別覈算。
下面介紹的是 dsh-billing-capsule 插件:它在 DSH Web GUI 輸入框底欄新增一個「賬單」膠囊,實時顯示當前會話按 DeepSeek 官方價目表折算的人民幣花費;點開後可查看四類 token 分桶與逐輪明細,無需再去平臺後臺對賬。
插件定位¶
- 名稱:dsh-billing-capsule
- 維護者:CKLYZZQ(Ricardo)
- 分類:客戶端
- 許可:MIT
- 倉庫:https://github.com/CKLYZZQ/DSH-plugin-Billing-Capsule
它僅提供 UI 展示,不讀寫任何憑據,也不上傳任何數據。
核心功能¶
1. 底欄膠囊¶
在 DSH Web GUI 的輸入框底欄(conversation.composer.dock)原有「會話統計 / token 用量 / 上下文」三個項目旁,新增第 4 個項目「賬單」。膠囊顯示會話累計花費,保留兩位小數;不足 1 分顯示 <¥0.01;若整會話歷史未全部加載,會在金額前加 ≈ 前綴,表示該值爲估算量級。
如果價目表中沒有當前模型,膠囊顯示 --,絕不編造數字。
2. 逐輪明細彈層¶
點擊膠囊可展開彈層,查看:
- 四類 token 分桶:未緩存輸入、緩存讀取、緩存寫入、輸出;每桶顯示 token 數、該時段單價與小計;
- 計價模型、單價來源與數據時間;
- 高峯/空閒時段判定說明;
- 逐輪明細:輪次、token、計價模型、時段、該輪花費,最新一輪在最上面。
3. 計價規則¶
插件按 DeepSeek 官方價目表計價,單位爲「元 / 百萬 tokens」,分爲「高峯」與「空閒」兩檔,空閒爲高峯半價。
高峯時段爲北京時間(Asia/Shanghai)週一至週五 9:00–12:00 與 14:00–18:00,其餘時段及週末按空閒計價。緩存寫入未在官方表中列出,該桶按 0 計價。
中國法定節假日未內置;如需精確,可在 cordis.patch.yml 的 holidays 列表中添加日期(YYYY-MM-DD),這些日期會按空閒計價。
4. 精度與估算¶
插件根據會話狀態返回「精確」或「估算」:
- 已加載輪次帶唯一模型路由,且其 token 合計等於整會話投影:精確,逐輪分別計價。
- 會話歷史未全部加載(分頁/壓縮)或輪次缺少路由:顯示
≈,按整會話總量與最近使用的模型估算,不會因分頁而少算總額。 - 切到非對話視圖導致取不到逐輪數據:只按整會話總量估算。
- 模型不在價目表內:該輪/該會話不計金額,彈層提示「單價未知」並列出 token。
會話總量始終取自 Harness 的整會話 tokenUsage 投影,逐輪數據只用於分攤。
安裝與啓用¶
插件支持從 npm 或源碼安裝。
從 npm 安裝(推薦)¶
Web 端:
dsh plugin --profile web add dsh-billing-capsule
Desktop 端:
dsh plugin --profile desktop add dsh-billing-capsule
從源碼安裝¶
dsh plugin --profile web add github:CKLYZZQ/DSH-plugin-Billing-Capsule
在界面裏安裝¶
在 DSH 的 Plugins 頁面點擊「安裝」,輸入包名 dsh-billing-capsule,或讓 agent 用 plugin_manager 的 install_bundle,將 target 設爲包名、倉庫地址或 tarball 絕對路徑。
安裝後刷新頁面,膠囊會出現在底欄「會話統計 / token 用量 / 上下文」右側。
卸載:在 Plugins 頁取消選擇,或用 plugin_manager 的 remove_bundle。
典型用法¶
- 安裝插件後,打開任意 DSH 會話。
- 在輸入框底欄右側,會看到「賬單」膠囊,顯示當前會話花費。
- 點擊膠囊展開彈層,查看四類 token 分桶、計價模型、高峯/空閒判定與逐輪明細。
配置項(cordis.patch.yml 的 config)¶
| 鍵 | 默認值 | 含義 |
|---|---|---|
priceSourceUrl |
官方中文價格頁 | Host 半抓取並解析的地址 |
refreshHours |
12 |
重新抓取官方價格頁的間隔;0 表示不定時抓取 |
requestTimeoutMs |
8000 |
單次抓取超時時間 |
loopbackOnly |
true |
只回應迴環來源的 prices.json 請求 |
holidays |
[] |
按空閒計價的日期(YYYY-MM-DD,北京時間) |
models |
{} |
手動單價覆蓋,優先級最高 |
手動覆蓋示例:
models:
deepseek-chat:
cacheHitInput: { peak: 0.2, idle: 0.2 }
cacheMissInput: { peak: 2, idle: 2 }
output: { peak: 3, idle: 3 }
價格來源¶
插件的價格數據來自三個層級:
- 客戶端內置基線:來自官方價格頁,當前爲 2026-10-11 抓取。
- Host 半自動抓取:插件激活時以及每
refreshHours小時,Host 半抓取官方價格頁並解析,經同源路由GET /dsh-billing/prices.json提供給客戶端;客戶端每 6 小時拉取一次,拿到就覆蓋基線。 cordis.patch.yml中的手動覆蓋:優先級最高。
抓取或解析失敗不會影響使用;彈層會顯示當前用的是哪一來源。官方改版導致解析失敗時,需要按「更新價格」章節處理。
權限與外部服務¶
- 唯一的對外網絡請求:Host 半抓取
https://api-docs.deepseek.com/zh-cn/quick_start/pricing/(官方價格頁),默認每 12 小時一次,可用refreshHours調整或關閉。 - 提供的本地接口:
GET /dsh-billing/prices.json(價格表)與POST /dsh-billing/refresh(立即重抓),註冊在 Harness 自身的 Web 服務上,默認只回應127.0.0.1/::1,只讀價格數據,不返回會話內容。 - 不讀取憑據:不訪問 API key、賬號 token、cookie 或任何憑據存儲。
- 無遙測、不上傳:沒有任何回傳代碼;會話數據只在本機瀏覽器內讀取與計算。
- 客戶端只讀:只讀 Harness 已有的
tokenUsage、modelSelection投影與當前對話的逐輪用量,不寫入任何會話事件。
依賴與兼容¶
- 零
dependencies、零peerDependencies、零 install script:不 import 任何@deepseek-ai/*,不會觸發 peer 版本拒絕或產生待批准的構建腳本。 dsh.client.inject只聲明激活順序:目標 profile 需組合ui-conversation(座位與底欄)與ui-chat(逐輪數據)。缺ui-chat時降級爲整會話總量估算;缺dsh-token-meter時不顯示(拿不到會話總量)。- Host 半的
webServer是可選依賴;沒有它時只用內置基線。 - 已在 DSH
0.2.0-rc.2與0.2.1-rc.2/ profiledesktop上驗證。
更新價格¶
官方改價後:
- 等自動刷新:Host 半會在
refreshHours內重新抓取;也可用POST /dsh-billing/refresh立即觸發。 - 更新內置基線(僅官網改版導致解析失敗時需要):改
client.js的BASELINE,並運行node tests/fetch-fixture.cjs刷新tests/fixture-pricing.html,按新頁面改tests/pricing.test.js裏的期望值。 - 改別名:官方改了模型名時,在
client.js的ALIASES里加舊名到新名的映射,或在config.models裏直接給該 id 定價。
適用場景與注意¶
適合需要實時掌握會話花費量級、希望按模型與時段分別覈算 token 用量的 DSH 用戶。
安裝前建議檢查源碼與許可證。插件以當前 DSH 進程權限運行,所有計算均在本地完成,不涉及外部服務或數據上傳。
總結¶
dsh-billing-capsule 是一個輕量級、零依賴的客戶端插件,在 DSH 底欄提供實時會話花費監控與逐輪明細。它基於官方價目表計價,支持高峯/空閒雙檔,通過膠囊與彈層兩種視圖呈現,幫助你在開發與調試時更直觀地評估成本。
插件目錄頁:https://www.skillhub.cn/plugins/CKLYZZQ/DSH-plugin-Billing-Capsule
GitHub 倉庫:https://github.com/CKLYZZQ/DSH-plugin-Billing-Capsule