跳到主内容
AIHO 2026 全新改版上线
概念Token基础概念定价

Token(令牌)

大模型处理文本的最小单位。一个 Token 约等于 0.75 个英文单词或 1-2 个汉字。Token 数量决定 API 费用和上下文窗口占用。

什么是 Token

Token 是大语言模型处理文本的基本单位。模型不是逐字符或逐词处理文本,而是把文本切分成一个个 token。

对于英文:1 个 token ≈ 0.75 个单词(4 个字符) 对于中文:1 个 token ≈ 1-2 个汉字

英文: "Hello world"        → ["Hello", " world"]           → 2 tokens
中文: "你好世界"           → ["你好", "世界"]               → 2-4 tokens
代码: "function add(a,b)"  → ["function", " add", "(", "a", ",", "b", ")"] → 7 tokens

为什么 Token 重要

1. 决定 API 费用

所有 LLM API 都按 token 计费。Token 越多,费用越高。

100 万 token ≈ 75 万英文单词 ≈ 50-100 万汉字

2. 决定上下文窗口

模型能处理的上下文长度以 token 为单位:

模型上下文窗口约等于
GPT-4o128K一本中篇小说
Claude Sonnet 4200K一本长篇小说
GPT-5400K两部长篇小说
Gemini 2.5 Pro1M一套百科全书

3. 决定速度

Token 越多,推理时间越长。生成 1000 token 大约需要 3-10 秒(取决于模型)。

Input / Output / Cache 三种价格

API 计费早就不是"按 token 一口价"了,常见至少分三档:

类别含义相对价格(粗略)
Input你发送给模型的 prompt(含 system + history + query)1x
Output模型生成的内容3-5x Input
Cached Input命中 prompt cache 的输入部分0.1-0.5x Input

举例:Claude Sonnet 4(数量级,会变动):

Input:        $3 / M token
Output:      $15 / M token
Cache write: $3.75 / M(写一次缓存,5 分钟有效,可续)
Cache read:  $0.30 / M(命中后 -90%)

设计应用时三句话原则:

  1. 能少 output 就少 output——Output 比 Input 贵 3-5 倍。让模型只返回必要内容、不要重复用户的话。
  2. 能复用 input 就开缓存——长 system prompt、tool definitions、知识库文档放最前面,缓存一次反复用。
  3. 能批量就批量——OpenAI / Anthropic 都有 Batch API,24h 内出结果,价格 -50%。

Prompt Cache 计费机制

各家细节不同,但模式接近:

平台触发方式TTL折扣
Anthropic显式 cache_control 标记5 分钟(可续到 1 小时)Read -90%
OpenAI自动缓存 ≥1024 token 的前缀~10 分钟Read -50%
Gemini显式 cachedContent API默认 1 小时(可设)Read -75% + 按存储时长收费
DeepSeek自动缓存~ 数小时Read -90%

生效条件:必须前缀完全一致。哪怕在 system prompt 开头加一个时间戳,整个缓存就废了。所以动态内容要严格放在 prompt 末尾

Token 计数工具

在线工具

代码计数

# OpenAI 的 tiktoken 库
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
tokens = enc.encode("你好世界,Hello world")
print(len(tokens))  # 输出 token 数

# Anthropic:通过 SDK 直接调
from anthropic import Anthropic
client = Anthropic()
count = client.messages.count_tokens(
    model="claude-sonnet-4",
    messages=[{"role": "user", "content": "你好世界"}]
)
print(count.input_tokens)
// 浏览器端
import { encode } from 'gpt-tokenizer'
const tokens = encode('你好世界,Hello world')
console.log(tokens.length)

不同模型的分词差异

不同模型使用不同的分词器,同样的文本 token 数可能差异巨大:

文本GPT-4oClaudeGeminiDeepSeek
"Hello world"2222
"你好世界"4242
1000 行 Python 代码~8000~7500~9000~7500
1000 字中文文档~1700~1200~1700~1100

结论:中文场景下 Claude / DeepSeek / Qwen 这类有中文优化的 tokenizer 比 GPT 省 30-50% token。同样的对话,GPT 跑下来可能比 Claude 贵不少——尤其是中文 input 多的场景。

实用估算

快速估算 token 数量的经验法则:

文本类型1K token ≈
英文文本750 单词
中文文本500-700 汉字
代码30-50 行
JSON100-200 行
Markdown500-700 字

上下文压缩策略

长对话 / Agent 长任务里 token 涨得最快。常见压缩手段:

策略适用副作用
滑动窗口多轮对话保留最近 N 轮早期上下文丢失
历史总结把旧对话用 LLM 总结成几百 token多一次 LLM 调用、细节丢失
工具输出截断Agent 调工具返回大量数据时只保留摘要 + 引用 ID模型可能再次请求完整数据
检索式压缩旧消息存向量库,按需检索工程复杂度高
Map-Reduce长文档先并行小段总结、再合并跨段语义可能被切断

Claude Code / Cursor 长会话时都内置了自动总结——当上下文超过阈值,会把前面对话压缩成几百 token 的摘要保留。

省 Token 技巧

  1. 精简 prompt — 删除冗余措辞,用简洁的指令
  2. 压缩历史 — 长对话用摘要替代完整历史
  3. 缓存重复内容 — 使用 prompt caching(Anthropic / OpenAI / Gemini / DeepSeek 都支持)
  4. 选对模型 — 简单任务用 Haiku / Flash / Mini 而非 Sonnet / Pro / GPT-5
  5. 控制输出长度 — 明确要求"用 100 字以内回答"或设 max_tokens
  6. 少用 Few-shot — 推理模型不需要太多示例
  7. 批量化 — 同一类请求合并到 Batch API,价格直接 -50%
  8. 结构化输出 — 让模型只输出 JSON 而不是"自然语言 + JSON",Output 少一半

常见误区

误区 1: "我用 GPT 比 Claude 便宜,因为单价低"

不一定。GPT tokenizer 在中文场景下 token 数显著更多,单价低但总账不一定低。算账要按"完成同样任务的总成本",不是单 token 价。

误区 2: "200K 上下文我就尽量塞满"

参考 Context Engineering——超过 80% 上下文窗口后模型质量明显下降。塞满还多花了钱,得不偿失。

误区 3: "Output 反正不多没必要省"

Output 单价是 Input 的 3-5 倍。让模型回答"以下是详细分析:..."这类填充话,每次都在烧钱。

延伸阅读