关于 token 与计费
大模型按 token 计量输入和输出。了解 token 的计算方式,能帮你更准确地预估成本。
token 是什么
token 是模型读写文本的最小单位。请求发出后,文本先由模型的分词器(tokenizer)切成一个个 token,再按 token 数计费。
不同厂商、不同代际的模型分词器不同,同一段文字在不同模型上的 token 数可能相差不少。最准确的数字是接口返回的 usage 字段。
中英文大致换算
下表是常见的经验值,只用于粗略估算,实际视模型的分词器而定。代码、数字、生僻字和表情符号通常更「费」token。
| 内容 | 大致 token 数 |
|---|---|
| 1 个英文单词 | 约 1.3 个 |
| 1,000 个英文字符 | 约 250 个 |
| 1 个汉字 | 约 0.6 – 1.5 个,视分词器而定 |
| 1,000 个汉字 | 约 600 – 1,500 个 |
输入、输出与缓存如何计费
按 token 计费的模型,一次请求的费用由几部分相加,单价都按「每百万 tokens」标注:
- 输入(prompt tokens):系统提示、历史消息、工具定义、上传的文件内容都算输入,按输入价计费。
- 输出(completion tokens):模型生成的内容,按输出价计费,通常比输入贵数倍。
- 缓存读取:输入中命中上下文缓存的部分按缓存读取价计费,一般只有输入价的一小部分。
- 缓存写入:部分模型(如 Claude)首次把内容写入缓存时,按缓存写入价计费。
- 按次计费的模型(多见于图像、视频)每次请求固定价格,与 token 数无关。
费用 = 输入 × 输入价 + 输出 × 输出价 + 缓存读取 × 缓存读取价 + 缓存写入 × 缓存写入价
以本模型「标准」分组为例:一次请求输入 2,000 tokens、输出 500 tokens,费用约 ¥0.0032(输入 ¥0.0016,输出 ¥0.0016)。
推理 token 计入输出
推理(思考)模型在给出答案前会先生成一段内部推理。这部分 token 虽然不一定返回给你,但会计入输出(usage 中的 reasoning tokens),按输出价计费。
所以同一个问题,推理模型的输出 token 往往明显更多。不需要深度推理的任务,可以调低推理强度,或换用非推理模型。
图片和音频也会折算成 token
多模态模型会把图片按分辨率折算成一定数量的输入 token,尺寸越大、细节档位越高,token 越多;音频通常按时长折算。具体折算方式各模型不同,以接口返回的 usage 为准。
在哪里查看每次扣费
登录控制台,在「用量明细」里可以看到每次调用的模型、分组、输入 / 输出 / 缓存 token 数和实际扣费金额,并支持筛选和导出。
在代码里,接口返回的 usage 字段也会给出本次的 token 数;流式请求记得开启 include_usage。
降低成本的几个办法
- 按需选分组:同一模型在不同分组价格不同,在「价格」标签页可以按省钱、均衡或稳定挑选。
- 用好缓存:把固定不变的系统提示、参考文档放在消息开头,提高缓存命中率。
- 控制输出:设置 max_tokens,并在提示里要求简洁的输出格式。
- 精简上下文:长对话定期做摘要,避免每轮都发送完整历史。
- 大小模型搭配:分类、抽取等简单任务交给更便宜的模型,复杂任务再用旗舰模型。
- 推理模型按需调低推理强度。