← Back to Blog / Tools / Token 计算器指南

🪙 Token 计算器完全指南:理解 LLM Token、成本估算与最佳实践

2026-07-30 · 约 10 分钟

当你用 ChatGPT 写一封邮件、用 Claude 分析代码、或者用 DeepSeek 翻译一段文本时,这些 AI 模型背后都按「Token」计费。一个 Token 是多少?为什么 1000 个中文字符比 1000 个英文字符贵这么多?怎么精确估算一次 API 调用的成本?

这篇文章从零讲透 Token —— 概念、计算、定价、优化技巧,一次搞定。

01 什么是 Token?

Token(令牌)是大语言模型处理文本的最小单位。模型不是逐字阅读你的输入,而是先把文本切分成 Token 序列,再作为输入喂给模型。

可以把 Token 理解成「词块」—— 一个 Token 可以是一个完整的单词、一个单词的一部分、或者一个标点符号。不同语言、不同 Tokenizer(分词器)的切分结果差异很大。

💡 英文中,1 个 Token 约等于 3~4 个字符。例如「Hello, world!」约 5 个 Token:「Hello」「,」「world」「!」<end>。中文中,1 个 Token 约等于 1~2 个字符,因为中文字符的信息密度更高。

常见文本与 Token 对照

文本字符数估算 Token 数
「Hello, world!」13~5
一段 300 词的英文短文~1,900~400
一篇 800 字的中文博文~800~500
一部《三体》中文版~600,000~400,000
整个维基百科英文版~4B~3B

注意:这只是估算值。不同模型使用不同的 Tokenizer(GPT 用 tiktoken / Byte-Pair Encoding,Claude 用 SentencePiece,DeepSeek 自研 Tokenizer),切分结果不完全一致。

02 主流模型 Token 定价一览(2026 年中)

各模型的 Token 定价差异巨大 —— 便宜的模型每百万 Token 不到 1 毛钱,贵的则要几十块。定价通常分 Input(输入)Output(输出) 两部分,输出明显更贵。

模型Input 价格
($/1M tokens)
Output 价格
($/1M tokens)
上下文窗口
GPT-4o$2.50$10.00128K
GPT-4o Mini$0.15$0.60128K
Claude 3.5 Sonnet$3.00$15.00200K
Claude 4 Opus$15.00$75.00200K
DeepSeek-V3$0.27$1.10128K
DeepSeek-R1$0.55$2.19128K
Gemini 2.5 Pro$1.25$5.001M
Gemini 2.5 Flash$0.15$0.601M
Llama 4 (Groq)$0.20$0.80128K

💡 实际成本的秘密:API 调用的实际 Token 消耗往往比你想象的高。系统提示词(System Prompt)、对话历史、函数定义、Few-shot 示例都会消耗 Input Token。一次看似简单的聊天,背后可能塞了几千个 Token 的上下文。

03 不同语言的 Token 消耗差异

这是很多开发者忽略的关键点。以下是一段相同语义的文本在不同语言下的 Token 消耗对比。

语言原文(相同含义)字符数估算 Token
English「What is the weather like today?」33~8
中文「今天天气怎么样?」7~6
日本語「今日の天気はどうですか?」13~12
한국어「오늘 날씨가 어떻습니까?」14~11
Русский「Какая сегодня погода?」23~12

⚠️ 常见的误区:很多人以为中文字数少了,Token 就少。实际情况是:中文每个字约 1~1.5 Token,英文每 3~4 个字符 1 Token。一段 1000 字符的中文(约 667 字),和一段 1000 字符的英文(约 200 词),Token 数量大致相当。但中文的信息密度更高 —— 同样 Token 数,中文传达的信息量更大。

04 各语言 Token 计算代码示例

如果你想精确计算 Token 数,建议使用模型官方的 Tokenizer 库,而不是手动估算。

Python — OpenAI tiktoken(官方推荐)

# 安装:pip install tiktoken
import tiktoken

# GPT-4o / GPT-4 / GPT-3.5 系列
enc = tiktoken.get_encoding("cl100k_base")
tokens = enc.encode("Hello, world! 今天天气怎么样?")
print(f"Token 数: {len(tokens)}")      # 输出: ~14
print(f"Token ID: {tokens[:10]}...")   # 输出: [9906, 11, 1917, 0, ...]

# 解码回文本
text = enc.decode(tokens)
print(text)  # "Hello, world! 今天天气怎么样?"

Python — 指定模型编码

import tiktoken

# GPT-4o 专用编码器
enc = tiktoken.encoding_for_model("gpt-4o")

text = "你好,请用中文总结这段文章。"
tokens = enc.encode(text)
print(f"Token 数: {len(tokens)}")      # ~12

# 统计 API 调用成本
input_token_count = len(tokens)
# GPT-4o 输入: $2.50 / 1M tokens
cost = input_token_count * 2.50 / 1_000_000
print(f"输入成本: ${cost:.6f}")

JavaScript — 浏览器端使用 gpt-tokenizer

// 浏览器 CDN: <script src="https://cdn.jsdelivr.net/npm/gpt-tokenizer"></script>
// 或 npm install gpt-tokenizer

import { encode, decode } from 'gpt-tokenizer';

const text = "Hello, world! 今天天气怎么样?";
const tokens = encode(text);
console.log(`Token 数: ${tokens.length}`);

// 批量统计
function estimateCost(input, output, priceIn, priceOut) {
  const inTokens = encode(input).length;
  const outTokens = encode(output).length;
  const cost = (inTokens * priceIn + outTokens * priceOut) / 1_000_000;
  return { inTokens, outTokens, cost };
}

const result = estimateCost("你好", "你好", 2.50, 10.00);
console.log(`输入 ${result.inTokens} tokens, 输出 ${result.outTokens} tokens, 总成本 $${result.cost.toFixed(6)}`);

Python — Anthropic Claude Tokenizer

# Claude 系列使用自己的 tokenizer
# 安装:pip install anthropic

from anthropic import Anthropic

client = Anthropic(api_key="your-api-key")

# Claude 3.5 Sonnet / Claude 4 Opus
response = client.beta.messages.count_tokens(
    model="claude-3-5-sonnet-20241022",
    messages=[{"role": "user", "content": "你好,请分析这段代码"}]
)
print(f"Token 数: {response.input_tokens}")

# 也可以离线使用 tiktoken 的近似值
# Claude 3.5 Sonnet 的定价:$3.00 input / $15.00 output per 1M tokens

Python — DeepSeek Tokenizer

# DeepSeek-V3 / R1
# 安装:pip install transformers

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3")
# 注意:实际需要下载模型 tokenizer 文件,或直接用 transformers

text = "DeepSeek 你好,请生成一个 Python 脚本"
tokens = tokenizer.encode(text)
print(f"Token 数: {len(tokens)}")

05 实用 Token 估算经验公式

如果你只是快速估算,不需要每次都调 API,可以用下面这些经验公式:

内容类型估算方法示例
纯英文文本字符数 ÷ 42000 字符 ≈ 500 Token
纯中文文本字符数 ÷ 1.5900 字符 ≈ 600 Token
中英混合字符数 ÷ 2.51500 字符 ≈ 600 Token
代码(Python/JS)字符数 ÷ 3.53500 字符 ≈ 1000 Token
Markdown 文档字符数 ÷ 33000 字符 ≈ 1000 Token
JSON 数据字符数 ÷ 3.53500 字符 ≈ 1000 Token

💡 如果是 API 调用的成本估算,别忘了加上系统提示词。比如你写了一个系统提示「你是一个专业的 Python 开发者,擅长数据分析…」约 200~300 Token。一次实际调用中,输入 Token = 系统提示 + 对话历史 + 本次用户输入 + 函数定义

06 降低 Token 消耗的 5 个技巧

  1. 精简系统提示词 — 把不必要的示例和冗长描述删掉,每少 100 Token,百万次调用节省 $250(GPT-4o)。
  2. 控制对话历史长度 — 长对话里历史消息会累积 Token,定期截断或摘要历史。
  3. 合理选择模型 — 简单的翻译/分类用 GPT-4o Mini ($0.15/M) 就够了,不需要上 Opus ($15/M)。
  4. 使用结构化输出 — 要求模型用 JSON 格式输出可以减少冗余文字,降低 Output Token。
  5. 批量处理 — 多个小请求合并成一个,共享系统提示和上下文,减少重复开销。

⚠️ 一个真实的优化案例:某公司每天的 API 调用量约 50 万次,每次请求的系统提示词从 500 Token 优化到 200 Token。仅此一项,每天节省了 $37.5 的预算。按年算就是 $13,687 —— 这还只是 GPT-4o Mini 的价格。

07 FAQ — 常见问题

Q:Token 和词(Word)是一回事吗?

不完全一样。一个词可能被切分成多个 Token(比如「unbelievable」→ 「un」「believe」「able」),也可能多个短词合并成一个 Token(如果你用 BPE 词频表里有这个组合)。

Q:为什么我的 Token 数总是比估算高?

最常见的原因是:你忘了算系统提示词、ChatML 格式的特殊 Token(如 <|im_start|>)、以及模型自动添加的结束标记(<|endoftext|>)。这些隐形的 Token 每条消息都有。

Q:中文用哪个模型最划算?

DeepSeek-V3 和 GPT-4o Mini 性价比最高。DeepSeek 的中文支持很好,价格也最低;GPT-4o Mini 的综合能力强,生态也更成熟。如果追求质量,GPT-4o 和 Claude 3.5 Sonnet 的中文能力都很优秀。

Q:用在线 Token 计算器准确吗?

在线工具通常使用近似估算(英文 ÷4,中文 ÷1.5),对于日常快速估算够用。如果要精确到个位数,建议使用模型官方的 Tokenizer(如 OpenAI 的 tiktoken)。

Q:模型上下文窗口用完会怎样?

超出上下文窗口时,模型会「忘记」最早的输入。对于长文档分析或长对话,要么分块处理,要么使用支持更大上下文的模型(如 Gemini 2.5 Pro 的 1M 上下文)。

🪙 在线 Token 计算器

快速估算你的文本 Token 数量和各模型调用成本,所有计算在浏览器本地完成。

打开 Token 计算器 →

08 延伸阅读