dsh-cost:DSH 對話底部的費用顯示插件

DSH(DeepSeek Harness)採用“一切皆插件”的架構。在開發或使用智能體時,精確掌握每筆請求的成本至關重要。dsh-cost 插件直接部署在對話界面底部,通過計算“發生時間 × 當時模型單價”來提供逐筆準確計費,並區分高峯與空閒時段,解決了傳統統計口徑過於粗略的問題。

核心功能

該插件基於 DSH 的 conversation.composer.dock 槽位注入,提供以下能力:

  1. 按筆準確計費:不使用當前價格套全程,而是記錄請求發生時的具體時刻與模型,按當時的單價累加。
  2. 分時段計價:將費用劃分爲高峯、空閒、歷史三檔。自北京時間 2026-09-10 12:00 起,Flash 系列降價,空閒與高峯單價不同;此前時段按舊價計費。
  3. 分時段明細卡:點擊底部的“費用”藥丸,展開高峯/低谷/歷史的明細卡片,底部以小條展示金額佔比。
  4. 模型歸屬與讀圖金額:自動拆分各模型的調用次數與金額,並將視覺輸入(圖片)的 token 單獨記賬。
  5. 賬戶餘額:藥丸顯示當前餘額。點擊藥丸可立即刷新余額與費用明細(硬幣圖標會旋轉動畫)。刷新頻率默認每 5 分鐘一次。
  6. 官方同款外觀:使用 14px 圖標、border-radius:24px 的“藥丸”樣式,與 DSH 官方統計行並列顯示在同一行,不換行。

安裝與啓用

插件自帶 dsh.bundle.patch,無需手動編寫 profile 補丁。安裝後重啓 dsh web 進程即可生效。

dsh plugin --profile web add github:david0702/dsh-cost

安裝後,客戶端刷新頁面即可看到新增的費用藥丸。

驗證安裝

在瀏覽器控制台運行以下命令,確認插件已進入 DSH Boot 組合:

__DSH_BOOT__.entries.map((e) => e.id).filter((id) => /cost/i.test(id))
// 期望輸出: ["@david0702/dsh-cost"]

開發與熱更

如需本地開發,建議使用 pnpm link 將倉庫直接鏈入 profile,避免“副本與倉庫漂移”。

dsh plugin --profile dev add /path/to/dsh-cost

不同文件的改動生效機制如下:

改動文件 生效方式
lib/client.js 熱更新:保存即生效,刷新瀏覽器即可見,無需重啓服務
lib/index.js 需重啓:宿主插件不支持熱載,必須重啓 dsh web
package.json (dsh 字段) 需重啓:profile 組合在啓動時合成

權限與安全風險

權限範圍

  • 網絡:僅訪問 https://api.deepseek.com(用於拉取餘額)。
  • 憑據:讀取環境變量 DEEPSEEK_API_KEY,僅用於餘額請求,不暴露給瀏覽器。
  • 客戶端:只向同源的 /api/dsh-cost/read 和 /api/dsh-cost/balance 發送請求,不加載第三方腳本。

安全風險

插件註冊的 /api/dsh-cost/* 路由爲精確路由(kind: 'exact'),優先於官方的 /api 前綴柵欄(kind: 'prefix')。
這意味着,在同機運行 dsh web 且配置了 DEEPSEEK_API_KEY 的情況下,同機上的其他進程可能無需憑據即可讀取當前的會話費用與賬戶餘額。建議不要將 dsh web 綁定到不可信網絡。

兼容性說明

插件依賴 DSH 的特定版本與約定:
* 客戶端:使用 conversation.composer.dock 槽位、props.useProjection 等。
* 宿主:使用 ctx.webServer.register、ctx.credentials.resolve。

安裝前請檢查 package.json 中的 dsh.compatibility.dshReleases。當前已驗證兼容的版本包括 0.1.5-rc.1 和 0.2.0-rc.2。

總結

dsh-cost 是一個爲 DSH 用戶提供精細化成本觀測的工具。它通過藥丸組件直觀展示費用與餘額,並通過精確路由與 API Key 的隔離,在提供便利的同時保留了基本的配置靈活性。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜