前言¶
DSH 用久了,一次「繼續」到底燒了多少錢,很容易失去感知。上下文一長,單輪的 token 量和花費就很難心算;dsh 本身有 token 用量面板,但要展開、要手算、還要自己記住今天是峯時還是谷時。維護者 inzia005 的 dsh-turn-cost 插件就是來做這件事的。
這是什麼¶
dsh-turn-cost 是一個客戶端 DSH 插件,維護者爲 inzia005,當前版本 0.1.0,許可證 MIT。它在每條回覆下面顯示一行,內容爲本輪花費、token 數、峯谷價,例如:
¥0.093 · 942k tok · 峯
鼠標懸停能看到明細,包含本輪 token、未命中輸入、緩存命中率、輸出、峯谷價、模型名,例如:
本輪 942k tok · 輸入 4.9k · 緩存命中 931k(99%) · 輸出 5.8k · 峯時價 · deepseek-flash
它解決的問題是「單輪成本不可見」:不需要展開用量面板,也不需要手算。
核心功能¶
下面介紹插件的記賬口徑,這是理解顯示數字的關鍵。
- 計價爲人民幣、每百萬 token,價格來源於 DeepSeek 官方定價頁 https://api-docs.deepseek.com/zh-cn/quick_start/pricing。
- 顯示分爲一行摘要和懸停明細,明細裏的分項都能對應到上面的價目表。
| 項 | 谷時 | 峯時 |
|---|---|---|
| 緩存命中輸入 | ¥0.02 | ¥0.04 |
| 未命中輸入 | ¥1 | ¥2 |
| 輸出 | ¥4 | ¥8 |
- 峯時 = 北京時間「週一至週五 09:00–12:00、14:00–18:00」,其餘時間(含週末)按谷時。
- 緩存寫入(
cacheWriteTokens)按未命中輸入價計,官方價目裏沒有單獨的緩存寫入檔。 reasoningTokens是outputTokens的一部分,不重複累加。- 模型名帶
pro的按 Flash 的 3 倍計價。 - 內置的節假日判斷只按週末簡化,沒有內置法定節假日表:遇到法定節假日會按工作日峯谷規則算,比實際略高一點。
安裝與啓用¶
README 給出的安裝命令如下。第一條從 GitHub 安裝,第二條從本地目錄安裝:
# 從 GitHub
dsh plugin --profile desktop add github:<你的用戶名>/dsh-turn-cost
# 或本地目錄
dsh plugin --profile desktop add /絕對路徑/dsh-turn-cost
安裝完成後需要重啓桌面端,因爲宿主半邊要重新加載插件。
典型用法¶
裝好並重啓後,插件無需額外配置。對話過程中每條回覆下方自動出現一行成本信息,鼠標懸停即可看到明細。安裝完成後沒有可寫的配置文件,也沒有手動命令需要執行。
工作原理¶
插件分兩半。
- 宿主半邊
lib/index.js:訂閱session/event,把每個(會話, 輪次)的assistant/messageusage 累加起來(緩存讀、未命中輸入、緩存寫、輸出分開記),按輪次結束時間判斷峯谷並換算成人民幣,通過GET /dsh-turn-cost/turn.json?turn=&seq=暴露查詢接口。用seq做首選鍵,避免兩個會話恰好有同一輪次號時串賬。 - 瀏覽器半邊
lib/client.js:往conversation.chat.turnTail槽位註冊一個組件,每條回覆下方渲染那一行字,數據全部來自上面的接口,不在瀏覽器裏重複算價。
適用場景與注意¶
適合希望在對話流裏直接看到單輪成本、而不是反覆展開用量面板的開發者。需要注意幾點:
- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證(MIT)。
- 只統計插件加載之後發生的輪次,不回填歷史對話。
- 記錄在內存裏,進程重啓就清空。
- 判斷峯谷用本機時鐘換算 +8 小時的北京時間,不校驗系統時區是否正確。
- 隱私上只讀 dsh 自己的會話事件裏的 usage 數字,全部計算在本地,不聯網、不上傳、不寫文件;路由只在本機 web server 上監聽,不對外暴露。
結尾¶
dsh-turn-cost 的價值在於把單輪成本壓縮成掃一眼就能讀的一行,省掉展開面板和手算的步驟。目錄頁:https://www.skillhub.cn/plugins/inzia005/dsh-turn-cost,源碼:https://github.com/inzia005/dsh-turn-cost。