首页/AI/AI 应用速查/Token 计数与 tiktoken

Token 计数与 tiktoken

计费与截断以 token 为单位:OpenAI 系可用 tiktoken 精确计数(cl100k_base、o200k_base 等编码),其他厂商用各自 tokenizer 或 API 返回 usage 反推。

AI 应用速查AI更新于 2026-10-13

Token 计数与分词工具

计费、截断与限流都以 token 为单位,而不是字数:同一段中文与英文的 token 数差别很大,不同模型用的分词表也不一样。OpenAI 系模型可以用 tiktoken 这类开源实现精确计数,先选与目标模型匹配的编码器,再把文本编码后统计长度。其他厂商多用自家分词工具,编码表不通用,跨平台比较必须各算各的。

基本信息

计量单位token,由分词器把文本切成的片段
工具OpenAI 系可用 tiktoken,其他厂商用其官方分词工具
编码器选择要与目标模型匹配,选错会算错
中文特点常见汉字多为一到两个 token,比英文更占额度
用途成本预估、上下文裁剪、限流与截断判断
误差来源工具版本与模型实际分词表可能不完全一致

常见编码器与适用场景

编码器适用说明
较新的通用编码器较新版通用模型中英混排场景常用,覆盖多语言
上一代编码器较早一代模型老项目与旧代码里仍常见
厂商官方分词工具非 OpenAI 系模型编码表不通用,必须用对应工具
粗略估算容量规划早期中文按字近似、英文按字符数折算,仅用于估算

典型使用场景

  • 成本预估:上线前估算每月输入输出量与费用区间
  • 上下文裁剪:判断历史消息该丢几轮才不超窗口
  • 限流预估:按每分钟 token 上限倒推并发与批量大小
  • 截断排查:确认回答被截断是长度上限还是模型主动停止
  • 批处理切分:把长文档按 token 分块,而不是按字符分块

精确计数与粗估对比

精确计数与粗估对比
import tiktoken
enc = tiktoken.get_encoding("o200k_base")     # 选与目标模型匹配的编码器
text = "其其网文档中心的加厚示例段落,共 120 个汉字。"
n = len(enc.encode(text))
print(n)                                     # 精确 token 数
print(len(text))                             # 字符数,仅作粗估参照
# 中文与英文混排时,用字符数换算的做法误差可达数成,计费判断不要依赖它

估算与实测的差异

场景误差来源建议
中文为主汉字可能被切成多个 token直接实测,别按字数折算
英文为主常见词多为单 token,长词被切开长文本实测,短文本可粗估
含代码与符号缩进、标点与符号都占 token代码类内容按实测值规划
含图片图片按分辨率折算按厂商折算规则单独估算
工具版本与模型实际分词表可能小有差异:成本预算要留出余量,按 10% 量级的波动准备。
用字数近似 token 数做容量规划是常见事故源:中文文本的误差尤其大,容易在上线后才发现成本与并发都算错了。

易错点

  • 用字符数折算 token 数:中文误差很大,成本与限流估算双双失真
  • 编码器选错:计数结果偏离实际,裁剪后仍可能超出窗口
  • 只算输入不算输出:输出单价通常更高,漏算会让预算严重偏低
  • 拿一家的分词工具去估另一家的模型:编码表不通用,结果无参考价值

数据来源与参考

  • tiktoken GitHub(openai);各厂商 tokenizer 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌