Token 计费入门:看懂输入、输出、缓存与你的账单
发布于 2026-09-27
Token 计费入门:看懂输入、输出、缓存与你的账单
第一次看到大模型账单的人常有两个疑问:为什么按 token 而不是按次?为什么同样聊十句话,费用差好几倍?把计费结构拆开看,就清楚了。
基本单位:token
模型处理的最小单位是 token,可以粗略理解为“词片”。中文大致一个字到一个词对应一到两个 token,英文按词根切分。输入和输出分开计价,且输出通常比输入贵不少——这是账单里最容易被忽略的一条。
一笔调用由三部分构成
1. 输入(prompt):系统提示 + 历史对话 + 本次提问,全部计入;
2. 输出(completion):模型生成的内容;
3. 缓存命中(cache):如果开启并命中了前缀缓存,这部分按更低的缓存价计费。
为什么多轮对话越来越贵
多轮对话不是只发送“你刚说的那句话”,而是把历史消息一起带上。十轮之后,每一轮都要重复发送前面所有内容——这是成本线性上涨的主因。
应对办法:
滑动窗口:只保留最近若干轮完整历史;
中间摘要:更早的对话先压缩成一段摘要再带入;
固定前缀前置:把长期不变的系统提示放在最前面,充分利用缓存命中价。
容易放大成本的几个习惯
系统提示写得又长又泛,每一轮都在为它付费;
用旗舰模型做简单任务(改写、分类、打标);
不限制输出长度,让模型“自由发挥”;
没有给 Key 设额度上限,测试脚本跑飞了才发现。
三个立刻能做的动作
1. 打开用量日志,看看哪把 Key、哪个模型占了最多花费;
2. 给每把 Key 设额度上限与模型白名单,把测试与生产分开;
3. 把系统提示与历史策略过一遍,先做“不花钱的优化”。
计费透明的好处是每一分浪费都看得见。看懂账单结构,优化方向自然就出现了。