前言¶
做 DSH 相關開發時,模型調用本身通常不是最難看的部分,難的是調用發生後如何快速覈對:哪次調用來自哪個會話、用了哪個模型、狀態碼是什麼、各 Token 桶數量是多少、金額大概是多少、失敗時錯誤信息在哪裏。
下面介紹一個插件:@wycto/dsh-token-usage。它記錄 DeepSeek Harness 中所有 LLM API 調用(模型請求),並提供單窗口全屏統計面板。本文以 npm 包 name @wycto/dsh-token-usage 指代該插件;倉庫與 README 中使用 dsh-token-usage 名稱。
這是什麼¶
@wycto/dsh-token-usage 是一個 DSH 插件,用於把 DSH 中的模型調用記錄整理成可查詢的統計面板。
已覈實資料中的基本信息如下:
- 維護者:
wycto - npm 包 name:
@wycto/dsh-token-usage package.jsonversion:0.1.14- license:
MIT peerDependencies:@deepseek-ai/dsh *- 源碼倉庫:
https://github.com/wycto/dsh-token-usage
它的定位不是重新攔截模型請求,也不替代 DSH 的調用鏈路,而是讀取 DSH 會話日誌,把已有的調用信息整理成統計、篩選、排序和導出能力。
核心功能¶
入口與全屏面板¶
安裝啓用後,DSH 側邊欄底部會出現藍色漸變大按鈕“Token 用量”。點擊後打開全屏統計面板。
查詢與篩選¶
面板支持按條件查詢調用記錄:
- 起止時間使用
datetime-local,可精確到秒。 - 默認不限制時間,顯示全部記錄。
- 篩選條件暫存在
localStorage,下次打開可恢復上次條件。 - 點擊【重置】可清空全部條件。
- 提供商 / 模型下拉去重合並現有配置與歷史記錄。
- 支持會話 ID / 模型提供商 / 模型 / 狀態 / 推理強度下拉篩選。
明細表與排序¶
明細表提供逐條調用記錄。README 中說明明細表全部 15 列可點擊表頭排序,排序維度包括:
- 時間
- 會話 ID
- 提供商
- 模型
- 輸入
- 緩存
- 命中 %
- 輸出
- 推理
- 總額
- 金額
- 金額(¥)
- 強度
- 狀態
- 耗時
默認按時間倒序,最新記錄在前。
會話 ID 快捷篩選¶
明細表中顯示會話 ID。點擊任意會話 ID,即可按該會話篩選後續記錄。
狀態碼與詳情彈窗¶
狀態列會展示調用狀態。對於存在狀態碼的調用,可顯示 HTTP 狀態碼,例如 200、400、401、429、500 等。
狀態下方可打開詳情彈窗,查看更完整的調用信息,包括:
- 會話 ID
- 錯誤信息
- 錯誤碼
- 各 Token 桶
- 金額
- 耗時
- Turn / Step 相關信息
分組統計¶
面板支持按以下維度分組統計:
providermodelstatuseffort
分組統計項包括調用數、各 Token、命中率、金額、耗時等。
CSV 導出¶
支持按當前篩選條件導出全字段 CSV 明細,便於在本地繼續處理。
金額顯示¶
金額以雙幣顯示:
- USD
- 人民幣
README 說明金額基於官方人民幣刊例和匯率換算,默認匯率爲 7.2,可通過 settings.yaml 中的 token-usage.usdCnyRate 覆蓋。
該插件支持 DeepSeek-V4 峯谷兩檔。金額仍屬於估算,不是精確賬單。
安裝與啓用¶
npm 包安裝¶
已覈實資料給出的安裝命令爲:
dsh plugin --profile <profile名> add @wycto/dsh-token-usage
執行該命令後,安裝到指定 profile。
重啓 DSH¶
安裝後需要重啓 DSH:
dsh --profile <profile名>
打開面板¶
重啓完成後,在 DSH 側邊欄底部點擊藍色“Token 用量”按鈕,即可打開全屏統計面板。
典型用法¶
按時間範圍查詢¶
打開面板後,可以使用起止 datetime-local 精確到秒過濾調用記錄。
例如,只查看某一天內某一時段的調用。如果不想繼續保留篩選條件,可以點【重置】清空全部條件,回到顯示全部記錄的狀態。
按會話 ID 查詢¶
在明細表中看到某個會話 ID 後,直接點擊該會話 ID,即可按該會話篩選。
適合在排查一次完整會話中的多次模型調用時使用。
按表頭排序¶
點擊明細表任意列表頭可切換升降序。
默認按時間倒序。也可以按模型、狀態、金額、耗時等列重新排序,用來快速找出消耗較高或失敗較多的記錄。
本地開發體驗¶
本地開發時,可以按 README 示例把插件文件接入 DSH web 構建。
先準備文件:
- 將
lib/index.js與client/index.js放入src/。 - 在
cordis.patch.yml中插入插件行。README 示例中name/id使用帶 scope 的包名@wycto/dsh-token-usage。 - 執行構建命令:
pnpm dsh web --patch ./dsh-token-usage/cordis.patch.yml
配置匯率與定價¶
可以在 settings.yaml 的 token-usage 下配置匯率、定價頁、自動獲取間隔和手動價格覆蓋。
已覈實資料列出的配置項包括:
token-usage:
usdCnyRate: 7.2
pricingUrl: ''
pricingFetchIntervalHours: 24
pricing: {}
其中:
usdCnyRate:USD 與人民幣之間的匯率,README 示例默認值爲7.2。pricingUrl:定價頁地址。pricingFetchIntervalHours:自動獲取定價的間隔,單位爲小時,README 示例默認值爲24。pricing:手動覆蓋或新增價格條目。README 示例中支持按模型配置,並支持 DeepSeek-V4 的peak峯谷時段。
修改 settings.yaml 後,按 DSH 實際加載機制重啓或重新加載後生效。
數據來源與邊界¶
數據來源¶
該插件只讀取 DSH 會話日誌,不侵入模型調用鏈路。
README 說明它會從 DSH 會話事件中提取每次模型調用的信息,並整理爲面板中的明細、狀態、Token、金額、耗時等字段。
金額是估算值¶
金額顯示爲估算值。插件內置常見模型單價表,未知模型使用 fallback 單價。
如果官方價格變動,README 說明插件會每天自動從官網獲取最新定價;獲取失敗時回退內置默認值。也可以通過 settings.yaml 手動覆蓋。
失敗調用可能沒有 Token 記錄¶
失敗調用,尤其是沒有 assistant/message 的調用,可能不產生 Token 記錄。
此時狀態列反映 turn 結局,用於判斷這次調用最終是完成、錯誤、中止等狀態。
OCX 網關下的 Token 顯示¶
本機爲 OCX 網關時,usage 字段可能缺失。此時 Token 數可能顯示爲 0。
記錄重建¶
插件中的記錄爲本地內存索引。進程重啓後,會從 DSH 會話日誌重新構建。
密鑰展示¶
apikey 永不落明文,僅展示掩碼。插件不復制密鑰。
適用場景與注意¶
適合以下場景:
- 需要查看 DSH 中某次會話的模型調用明細。
- 需要按模型、提供商、狀態、推理強度分組觀察調用分佈。
- 需要排查
400、401、429、500等狀態碼及錯誤信息。 - 需要導出 CSV 做本地二次分析。
- 需要查看 USD 與人民幣雙幣金額估算。
使用前需要注意:
- 插件會隨當前 DSH 進程權限運行。安裝前應檢查源碼、許可證和依賴關係。
- 金額爲估算值,不適合作爲精確財務依據。
- 失敗調用可能沒有 Token 記錄。
- OCX 網關下部分 Token 字段可能顯示爲
0。 - 插件只讀取 DSH 會話日誌,不改變模型調用鏈路。
結尾¶
@wycto/dsh-token-usage 的價值在於把 DSH 中原本分散在會話日誌裏的 LLM API 調用信息,整理成一個可查詢、可篩選、可排序、可導出的本地統計面板。它適合用來查看模型消耗、排查調用狀態,以及按會話或模型維度做本地分析。
已覈實資料未包含目錄頁 URL,本文只給出源碼倉庫地址:
- GitHub:
https://github.com/wycto/dsh-token-usage