dsh-token-price
其他 活跃维护

dsh-token-price

spoon-man569/dsh-token-price

轻量级显示插件,可实时输出每轮对话Token花费、累计总消耗及账户余额,数据更新及时准确,部署无需额外配置,方便开发者随时掌握模型调用成本与账户资金余量。

2
Stars 标星
0
Forks 分支
2
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
63 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:spoon-man569/dsh-token-price
git clone https://github.com/spoon-man569/dsh-token-price.git
git clone git@github.com:spoon-man569/dsh-token-price.git
README.md main

dsh-token-price

English | 汉语

Accurate token-cost and account-balance readouts for the DeepSeek Harness Web chat UI.

What it shows

  • Per-message cost: the cost for completed request steps in that turn, shown as ¥... after each assistant reply's statistics line on hover.
  • Session total: the sum of every reported request step, including a cancelled request that emitted usage but no final assistant message.
  • Estimated CNY: a market-rate USD/CNY conversion shown as ¥.... USD is not rendered in the UI. This is not an account debit or official per-request CNY charge.
  • Account balance: the official GET /user/balance result. The plugin prefers the returned CNY balance and otherwise preserves the API's returned currency.

USD remains the internal accounting value. An unknown provider/model route is shown as 未定价, never as a zero-cost amount.

Install

One command (requires pnpm):

dsh plugin --profile web add dsh-token-price

The package declares dsh.bundle and dsh.client, so this activates both the host service and browser readouts.

Configuration

- id: token-price
  name: dsh-token-price
  config:
    balanceBaseURL: https://api.deepseek.com
    balanceApiKeyEnv: DEEPSEEK_API_KEY
    balanceRefreshIntervalMs: 60000
    referenceRateRefreshIntervalMs: 3600000
    requestTimeoutMs: 5000

balanceApiKeyEnv names the credential holding the DeepSeek API key used for the balance request. The key remains on the host. A failed refresh keeps the last balance sample.

Pricing and rates

prices.json is the local, versioned source of official USD rates per million tokens. It is an append-only history: each rule has an effectiveFrom timestamp, Beijing peak windows, and explicit prices for each supported route. New official prices must append a rule; past rules must not be changed.

The tokenCost projection snapshots the request route and time at request/header, then calculates each (turn, step) from the matching historical USD rule. Replaying the same session log therefore yields the same USD result. The host never scrapes the official price page at runtime.

USD/CNY is refreshed server-side from public market-rate sources every hour. When that refresh fails, the UI uses the current rule's bundled fallback rate. Both values remain estimates (¥) and never affect USD accounting.

Development

npm install
npm test

npm test builds lib/, emits type declarations, and runs accounting tests. Restart the DSH Web process after rebuilding so it loads the new artifacts.

License

MIT