很多人第一次看账单会疑惑:明明只问了一句话,为什么扣的钱和官方价格对不上?原因通常有三个:倍率、输入输出分开计价、以及缓存。
计费公式可以简化成一句话:
单次费用 = (输入 token × 输入单价 + 输出 token × 输出单价) × 分组倍率
也就是说,倍率是最后整体乘上去的系数,不是加价,也不是手续费。分组倍率 0.06 意味着按官方价格的 6% 计费,1.0 意味着与官方一致。
| 项目 | 计价特点 | 对成本的影响 |
|---|---|---|
| 输入 token | 单价低,但量大 | 长文档、长系统提示词会显著推高输入成本 |
| 输出 token | 单价通常是输入的 3~5 倍 | 让模型“多说几句”比“多读几句”贵得多 |
| 缓存命中 | 按更低的单价计费 | 重复使用同一段长提示词时收益最大 |
Claude 的 prompt caching 对重复前缀按缓存读取价计费,明显低于普通输入价。工程上的做法是:
假设某模型输入 3 元 / 百万 token、输出 15 元 / 百万 token,一次请求输入 2000 token、输出 500 token,倍率 0.5:
输入:2000 / 1,000,000 × 3 = 0.006 元
输出:500 / 1,000,000 × 15 = 0.0075 元
合计:(0.006 + 0.0075) × 0.5 = 0.00675 元
换算下来不到一分钱。真正的成本大头通常出现在:长上下文对话、批量数据处理、以及忘记设置 max_tokens 导致的超长输出。
max_tokens:给输出一个合理上限,避免失控;具体模型的单价和当前倍率,见 模型广场。