前言¶
在 DeepSeek Harness(DSH)裏跑長會話、多輪工具調用時,token 消耗很快,但界面默認不會把「這一輪大概多少錢、整場會話累計多少」擺在眼前。要自己對照官方價目、區分峯谷時段、再按緩存命中/未命中/輸出拆桶估算,既費事也容易算錯。
dsh-cost-meter 是社區維護的 DSH 插件,在輸入框正下方掛一枚常駐小膠囊,用 DeepSeek 官方峯谷價目和會話日誌裏的真實 usage 做估算,分別展示「本次回答」和「本會話消耗」,並可展開逐輪明細。下面介紹它的能力、安裝方式與使用注意。
這是什麼¶
- 名稱:dsh-cost-meter(npm 包名
@local/dsh-cost-meter,版本 1.0.0) - 維護者:Lopncod
- 分類:模型推理(社區目錄 SkillHub 歸類)
- 倉庫:github.com/Lopncod/dsh-cost-meter
- 定位:給 DSH Web / 桌面端用的花費計插件;金額按官方 DeepSeek 高峯/空閒費率估算,不是賬單原文。
DSH 生態主張「一切皆插件」;SkillHub 等社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看源碼與 MIT 許可證,插件在當前 DSH 進程權限下運行。
界面顯示什麼¶
膠囊一行大致類似:
本會話消耗 ¥1.23 · 本次回答 ¥0.087 空閒價 · 2h15m 後轉高峯
含義如下:
- 本次回答:最近一次已完成輪次(turn)的估算費用;輪次結束時刷新並閃一下提示。
- 本會話消耗:當前會話累計估算,含正在進行中的那一輪。
- 峯谷提示:當前按空閒價還是高峯價計價,以及距離下一檔切換的提示(在
peakMode: "auto"時)。
點擊膠囊可展開逐輪明細:每輪金額、token 四桶(緩存命中讀 / 未命中讀 / 緩存寫 / 輸出)、當輪生效單價、高峯/空閒標記、輪內步數。若賬本里有多條會話,還會列出本機已記賬的全部會話與總計。
計價口徑¶
插件按 DeepSeek 官方價目(人民幣 / 百萬 token)與峯谷計價規則估算。內置表(Flash / Pro)如下:
| 計費桶 | 含義 | Flash 空閒 / 高峯 | Pro 空閒 / 高峯 |
|---|---|---|---|
| 緩存命中讀 | 複用前綴緩存的輸入 | 0.02 / 0.04 | 0.15 / 0.30 |
| 未命中讀 | 未命中緩存的輸入 | 1 / 2 | 4.5 / 9 |
| 緩存寫 | 寫入緩存的輸入(按未命中價計) | 1 / 2 | 4.5 / 9 |
| 輸出 | 補全(含推理 token) | 4 / 8 | 13.5 / 27 |
- 高峯時段:北京時間週一至週五 09:00–12:00、14:00–18:00;其餘時段(含週末與中國法定節假日全天)按空閒價。
- 顯示金額爲估算值;真實扣費以 DeepSeek 側餘額爲準。
token 數據來源¶
四桶來自會話日誌裏 assistant/message 事件攜帶的真實 usage,不做 token 估算:
inputTokens對應未緩存桶,與cacheReadTokens、cacheWriteTokens互斥,三者相加纔是 prompt 總量(與 DSH@deepseek-ai/dsh-token-meter的tokenUsageprojection 一致)。reasoningTokens屬於outputTokens子集,不單獨再計費。- 同一
(turn, step)的重複結算替換而非累加;llm/retry-started才重開替換槽,避免重試把一輪算兩遍。
安裝與啓用¶
用 DSH 的 Plugin Manager 安裝 bundle。任選其一:
本地目錄或克隆後的倉庫路徑:
plugin_manager action: install_bundle target: <本目錄絕對路徑或本倉庫>
直接指向 GitHub:
plugin_manager action: install_bundle target: github:Lopncod/dsh-cost-meter
安裝後需要重啓 DSH。README 說明:宿主半在啓動時 import ESM 模塊,運行中改文件或重新啓用 bundle 不會重新加載。
可選配置¶
配置文件路徑:$DSH_HOME/.dsh-cost.json(Windows 默認 C:\Users\<你>\.dsh\.dsh-cost.json)。保存後自動生效,無需重啓。
{
"peakMode": "auto",
"defaultModel": "deepseek-flash",
"rates": {
"my-proxy-flash": { "hit": 0.01, "miss": 0.5, "out": 2 }
}
}
| 字段 | 說明 |
|---|---|
peakMode |
"auto"(默認,按北京時間判峯谷)/ "always"(全按高峯價)/ "never"(全按空閒價) |
defaultModel |
request/header 缺失時用來選價目表的模型名 |
rates |
自定義單價,鍵爲模型 id 子串(最長匹配優先);值 {hit, miss, out} 爲元/百萬 token;寫單個數字表示峯谷同價;鍵 _default 改兜底價 |
賬本文件:$DSH_HOME/.dsh-cost-ledger.json(逐會話逐輪記錄)。刪除它隻影響歷史展示,後續事件會重新累積。
只讀 HTTP 接口¶
宿主半通過 ctx.webServer 提供只讀路由(DSH 瀏覽器鑑權柵欄只套在 /api,這些路由不受影響):
| 路由 | 用途 |
|---|---|
GET /dsh-cost/state?sessionId=<id> |
當前會話 + 全部會話彙總 + 峯谷狀態;sessionId 不在賬本時回退最近有記錄的會話,並帶 fallback: true |
GET /dsh-cost/rates |
生效的內置 / 自定義價目表 |
GET /dsh-cost/debug |
最近 12 次 /state 請求的完整 URL,便於排查頁面是否在輪詢、用的哪個 id |
同源腳本也可直接請求上述路徑。
適用場景與已知限制¶
適合:在 DSH 裏日常寫智能體、調長會話,需要一眼看到「這一輪 / 整場」人民幣估算,並願意按官方峯谷與四桶規則理解數字的開發者。
限制(來自 README):
- 只統計插件啓用之後的輪次;啓用前跑過的舊會話沒有歷史。
- 子代理會話按各自
sessionId單獨記賬,不計入父會話那一行;總計會一起算。 - fork / resume 出來的會話只累計本進程內新發生的事件,被複制的歷史前綴不重複計費。
開發側可用 npm test 跑 18 項測試(峯谷邊界、價目表最長匹配、替換語義、賬本 JSON 往返等)。
結尾¶
dsh-cost-meter 把「本次回答 / 本會話」花費和峯谷狀態收到 Composer 下方一枚膠囊裏,計價基於官方價目與會話真實 usage,並支持自定義費率與本地賬本。社區目錄頁:skillhub.cn/plugins/Lopncod/dsh-cost-meter;源碼與完整說明:github.com/Lopncod/dsh-cost-meter。