前言¶
如果你在 DSH 裏同時接了多家 LLM 提供商——比如 DeepSeek 官方、OpenRouter、SiliconFlow——查餘額就是一件瑣事:要麼逐個登錄各家控制檯,要麼自己 curl 各家的餘額端點。餘額什麼時候耗盡,往往要等到一次調用報錯才知道。
dsh-llm-balance 把這件事搬進聊天界面:在聊天輸入框下方直接顯示已配置提供商的 API 餘額,點擊餘額即可打開對應的充值頁。下面介紹這個插件的功能、安裝和配置方式。
這是什麼¶
dsh-llm-balance 是一個 DSH 插件,由 JonyChan8394 維護,採用 MIT 許可證,當前版本 0.5.0。DSH 的理念是「一切皆插件」,這個插件解決的就是一個具體問題:讓餘額出現在你本來就在看的地方——輸入框下面。
它不是聚合面板,顯示的正是你在 dsh 中註冊的提供商路由:在 dsh 裏新增一個提供商,下一次刷新它就出現在餘額條裏;移除後隨之消失,無需重啓、無需改插件配置。
核心功能¶
- 輸入框下方的緊湊讀數:餘額顯示在 composer 底部帶(輸入卡片下方、統計行所在的位置),默認每 60 秒自動刷新,並提供手動刷新鏈接。
- 點擊即充值:點擊任一提供商的餘額(或「未開放查詢API」標籤),會在新瀏覽器標籤頁打開該提供商的充值頁;每個預設自帶 rechargeUrl。
- 跟隨 dsh 配置:餘額條顯示的就是 dsh 中註冊的提供商路由,新增或移除提供商無需重啓或修改配置。
- 內置已知餘額端點:DeepSeek(deepseek、deepseek-official)、OpenRouter、SiliconFlow、Moonshot/Kimi(moonshotai-cn、moonshotai)、MiniMax、StepFun、Zhipu/GLM(zhipu)。
- 無公開餘額 API 的提供商(如 Qwen/DashScope、OpenAI、Anthropic)配置了 key 時,顯示「未開放查詢API / no balance API」,而不是直接隱藏。
- 密鑰不出宿主:API 密鑰在宿主側從 DSH credentials(或環境變量)解析,瀏覽器只會看到抓取到的餘額。
實現方式¶
插件分宿主和瀏覽器兩部分。宿主側(lib/index.js)在每次請求時讀取 ctx.llm.listProviders()——也就是 dsh 中配置的那組 LLM 路由;對每個有已知餘額端點的提供商,它通過 ctx.credentials 解析密鑰並調用餘額端點,結果以 GET /llm-balance 的 JSON 形式通過 webserver 路由註冊表提供。瀏覽器側(lib/client.js)註冊一個 conversation.composer.dock 條目(order 10),輪詢 /llm-balance 並把讀數渲染到輸入卡片下方。
依賴方面,插件聲明瞭三個 peerDependencies:@deepseek-ai/cordis ^4.0.1、@deepseek-ai/schemastery ^4.0.1、@deepseek-ai/dsh-credentials ^0.1.0-rc.6;client 端由 @deepseek-ai/dsh-client-runtime 與 @deepseek-ai/dsh-client-locale 注入(見 package.json 的 dsh.client 配置)。
安裝與啓用¶
先執行安裝命令,再重啓 dsh web 即可:
dsh plugin --profile web add github:JonyChan8394/dsh-llm-balance
重啓後,只要至少一個已配置的提供商有 key,輸入框下方就會出現餘額讀數。除此之外無需任何配置——插件跟隨你在 dsh 中已經設置好的提供商。
兩種邊界狀態(來自 README):
- 未配置 key 的提供商不會出現在餘額條中;
- 餘額請求失敗的提供商顯示「獲取失敗 / fetch failed」。
自定義餘額端點¶
經過上面的安裝步驟,插件已經可以工作。如果列表外的提供商也有自己的餘額端點(例如自建的聚合路由),可以在 profile 的 cordis.patch.yml 中覆蓋插件配置:
- id: llm-balance
config:
refreshMs: 30000
endpoints:
- id: myprovider
name: MyProvider
apiKeyEnv: MYPROVIDER_API_KEY
url: https://api.example.com/v1/balance
balancePath: data.remaining
currencyPath: data.currency
rechargeUrl: https://console.example.com/recharge
各字段含義:
refreshMs:刷新間隔(毫秒),示例中的 30000 即每 30 秒刷新一次;id/name:提供商標識與顯示名;apiKeyEnv:宿主側解析密鑰所用的環境變量名;url:餘額端點地址;balancePath/currencyPath:從響應中取餘額和幣種的路徑;rechargeUrl:點擊餘額時打開的充值頁。
適用場景與注意事項¶
適合的場景:在 dsh 中同時使用多家有餘額端點的提供商,希望不離開聊天界面就能掌握餘額,避免任務中途因欠費中斷。
使用前有兩點要注意:
1、插件以當前 dsh 進程的權限運行,宿主側會讀取你的 DSH credentials 並以你的 key 調用各家的餘額端點。安裝前請先檢查源碼與許可證。
2、內置端點只覆蓋 README 列出的那些路由;其餘提供商(包括 OpenAI、Anthropic 這類沒有公開餘額 API 的)只能顯示「未開放查詢API」,點擊後會跳轉其充值頁。
小結¶
dsh-llm-balance 做的事情不大,但位置選得準:把「查餘額」從另開控制檯變成低頭看一眼輸入框下方,且完全跟隨你已有的 dsh 配置,裝完即用。
- 社區目錄頁:https://www.skillhub.cn/plugins/JonyChan8394/dsh-llm-balance (社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係)
- GitHub 倉庫:https://github.com/JonyChan8394/dsh-llm-balance