主题
缓存与价格
缓存相关费用需要结合模型的缓存价格和所在分组的调用倍率一起计算。
⚠️ 提醒:启用缓存后,调用倍率较低分组的模型,实际产生的计费可能会比调用倍率较高分组更多,不能只根据分组倍率判断最终成本。
计费说明
- 缓存写入和缓存读取通常按照独立的缓存价格计费。
- 实际费用由模型的缓存价格和所在分组的调用倍率共同决定。
- 比较不同分组的成本时,应同时查看模型价格、缓存价格和分组倍率,不能只比较调用倍率。
示例:同一模型和上下文下,缓存率如何影响价格
这里的“缓存率”指同一份上下文中,有多少比例的 Token 被缓存命中并按缓存读取价计费。
为了只比较“分组倍率”和“缓存命中率”,下面两个分组使用完全相同的:
- 模型:
claude-sonnet-4-5 - 总上下文:
100KToken - 普通输入价格:
$3.00 / M - 缓存读取价格:
$0.30 / M
本例只计算上下文输入费用,不计算输出费用,避免其他变量干扰缓存率的对比。
实际费用可以用下面的公式估算:
text
上下文费用 =
(未命中 Token × 普通输入价格 + 命中 Token × 缓存读取价格)
× 分组倍率两个分组的条件
| 分组 | 分组倍率 | 缓存命中率 | 未命中 Token | 缓存命中 Token |
|---|---|---|---|---|
| 分组 A | 0.07x | 20% | 80K | 20K |
| 分组 B | 0.10x | 80% | 20K | 80K |
两组调用的模型和总上下文都是一样的,唯一差异是分组倍率和缓存命中率。
费用计算
分组 A:倍率更低,但缓存命中率只有 20%
text
基础上下文费用
= 80K ÷ 1M × $3.00 + 20K ÷ 1M × $0.30
= $0.240 + $0.006
= $0.246
实际费用
= $0.246 × 0.07
= $0.01722分组 B:倍率更高,但缓存命中率达到 80%
text
基础上下文费用
= 20K ÷ 1M × $3.00 + 80K ÷ 1M × $0.30
= $0.060 + $0.024
= $0.084
实际费用
= $0.084 × 0.10
= $0.00840结果
| 分组 | 实际上下文费用 |
|---|---|
分组 A:0.07x、缓存率 20% | $0.01722 |
分组 B:0.10x、缓存率 80% | $0.00840 |
虽然分组 B 的倍率更高,但因为同一份上下文有更多 Token 命中缓存,最终上下文费用只有分组 A 的约 48.8%,比 A 低约 51.2%。
这个例子说明:在模型和上下文完全一致时,不能只看 0.07x 和 0.1x 的倍率,还要看缓存命中率。 当上下文重复度较高时,更高的缓存命中率可能抵消甚至超过倍率差异。
实际比较方法
对同一模型、同一份上下文进行比较时,可以分别记录两个分组的缓存命中率,再将普通输入 Token 和缓存命中 Token 按各自价格计算,最后乘以分组倍率。首次发送全新上下文时,缓存命中率可能接近 0%;连续复用同一上下文时,缓存命中率通常会更高。