在使用 LLM API 时,Token 计数往往被忽视,导致成本失控。本文提供统一的计数方法,支持 OpenAI、Anthropic、Google、DeepSeek、Llama 等模型,并给出成本计算示例。
OpenAI
OpenAI 已开源 BPE tokenizer,可直接在客户端获取精确 Token 数。
```bash
npm install gpt-tokenizer
```
```js
import { encode } from 'gpt-tokenizer/encoding/cl100k_base';
const tokens = encode('Your system prompt goes here.').length;
console.log(tokens); // 6
```
-
gpt-3.5-turbo、gpt-4、gpt-4-turbo、gpt-4.1 使用 cl100k_base。-
gpt-4o、gpt-4o-mini、o1、o3 使用 o200k_base。请根据调用的模型选择对应编码,否则计数会偏差。
Anthropic / Google / DeepSeek
这些供应商未公开 JavaScript tokenizer。可选两种方案:
1. 调用计数端点(如 Anthropic 的
/messages/count_tokens),返回精确值,但会产生网络延迟。2. 字符估算,使用已知字符/Token 比例。
```js
const CHARS_PER_TOKEN = { anthropic: 3.8, google: 4.0, deepseek: 3.5, llama: 3.8 };
function estimateTokens(text, provider) {
const cpt = CHARS_PER_TOKEN[provider] || 3.8;
return Math.max(1, Math.round(text.length / cpt));
}
```
估算值应标记为“估算”,避免误导。
统一计数函数
```js
import { encode as encodeCl100k } from 'gpt-tokenizer/encoding/cl100k_base';
import { encode as encodeO200k } from 'gpt-tokenizer/encoding/o200k_base';
function providerOf(model) { /* 根据模型名返回 provider */ }
function openaiEncoding(model) { /* 返回 'o200k' 或 'cl100k' */ }
export function countTokens(text, model) {
const provider = providerOf(model);
if (provider === 'openai') {
const enc = openaiEncoding(model) === 'o200k' ? encodeO200k : encodeCl100k;
return { count: enc(text).length, mode: 'exact' };
}
const cpt = { anthropic: 3.8, google: 4.0, deepseek: 3.5, llama: 3.8 }[provider] || 3.8;
return { count: Math.max(1, Math.round(text.length / cpt)), mode: 'estimate' };
}
```
Token → 费用
```js
const PRICE = {
'gpt-4o': { in: 2.50, out: 10.00 },
'gpt-4o-mini': { in: 0.15, out: 0.60 },
'claude-3-5-sonnet-latest': { in: 3.00, out: 15.00 },
'gemini-1.5-pro': { in: 1.25, out: 5.00 },
'deepseek-chat': { in: 0.14, out: 0.28 },
};
function costOf(inTokens, outTokens, model) {
const p = PRICE[model];
if (!p) return null;
return (inTokens / 1_000_000) * p.in + (outTokens / 1_000_000) * p.out;
}
```
示例:
costOf(1000, 500, 'claude-3-5-sonnet-latest') 约 0.0089 美元。工具推荐
- 在线计数器:
tokensbill.com/tools/token-counter,支持多模型一次性查看月度成本,浏览器内完成,无数据外泄。- 但建议将计数逻辑集成到自己的代码中,实时监控每次调用成本,避免隐藏高昂费用。
通过在代码中实现精确或估算计数,并结合公开价格表,即可在开发阶段及时发现成本异常,避免类似 $847/日的账单误差。
github.com/your-repo/token-counter
#开发者 #工具 #OpenAI #Anthropic #Google #DeepSeek #Llama #Token计数 #成本管理
@DevToolboxHub