AI token 计数与上下文适配
粘贴任意文本,就能看到它大概会变成多少 token、能否放进指定的上下文窗口,以及按你自己的 API 价格要花多少钱。一切都在你的浏览器里运行——文本永远不会被上传。
它放得进上下文窗口吗?
| 上下文窗口 | 你的文本 | 放得下吗? |
|---|
上下文窗口是共用的:你的输入、模型的回复,以及应用在背后追加的一切(系统提示、检索到的文档、聊天记录)都挤在里面。留点余量——把窗口塞满,答案就会被截断。
要花多少钱?
这个估算是怎么算的(以及为什么不精确)
真正的分词是用特定模型的 BPE 词表来切你的文本——而每个模型家族用的词表都不一样,所以「真实」的 token 数因模型而异。要在浏览器里正经做这件事,就得为每个家族附带几兆字节的词表,会把这个页面拖慢,而你其实只需要一个大概的数字。
这里改用基于字符和单词的估算器,并对空白、标点和数字做了加权,对普通英语散文的误差大约在 10–15% 以内。两个已知偏差:代码和标点密集的文本,实际分词比估算更密;而非拉丁文字(中文、日文、阿拉伯文、印地文)每字符消耗的 token 明显多于英语——常常是 2–3 倍。
如果你需要用于计费的精确数字,请用你供应商自己的分词接口。而对于「这放得下吗」和「大概要花多少钱」,估算才是对的工具。
token 到底是什么
模型读的不是字符也不是单词,而是 token——介于两者之间的片段。常见词通常是一个 token;较长或少见的词会拆成几个。「Unbelievable」可能是三个 token,「the」是一个。在英语散文里,一个 token 平均约四个字符,或者大致四分之三个词。
一切都按 token 计价、按 token 设限:你发出去的、返回来的,以及模型一次能装下的量。
为什么你的文本比你以为的更密
- 代码的分词效果很差——缩进、括号和 camelCase 都要花 token。一个 500 行的文件,可能远超它的字符数所暗示的量。
- 非英语文本更贵。不使用拉丁字母的语言,每个字符往往要多花 2–3 倍的 token,这就是同一条提示用日语写会比英语贵好几倍的原因。
- 重复很便宜,结构不便宜。JSON 和 Markdown 的骨架,在多次调用里会迅速累积。
上下文窗口 ≠ 你的预算
一百万 token 的窗口,并不意味着你就该送进去一百万 token。输入很长时,中间部分的注意力质量会下降,延迟上升,成本则线性增长。检索——只取相关段落——通常胜过把窗口塞满,而且更便宜。
常见问题解答
这个计数器有多准?
对普通英语散文,误差大约在 10–15% 以内。代码和非拉丁文字会比估算更高。要精确的计费数字,请用你供应商的分词器。
我的文本会被上传到什么地方吗?
不会。计算在你的浏览器里进行。没有请求,没有日志,也不存储。
你们为什么不显示模型价格?
因为它们会变,而把一个过期价格摆得理直气壮,比不给价格更糟。填上你供应商当前的价格,算术交给这个工具。
图片和音频也消耗 token 吗?
会——多模态输入同样会被换算成 token,换算比例因供应商和分辨率而异。这个工具只处理文本。
相关: 什么是 RAG? · 哪种任务用哪个 AI 模型 · 全部免费工具