💾
用 ChatGPT API 做一个法律助手,每次提问都要先"读"完一整份合同——
同一份合同,AI 每天重复读 100 遍,每遍都收你全价。
这就像请了一个律师,每次开会都要重新介绍自己
↓ 往下看,3 分钟搞懂
🤖 AI

上下文缓存

Context Caching

同一本书翻一次就够了,别每次从头翻。
🧒 极简版🧑 场景版🎓 精准版

🧒 极简版

开卷考试——书已经翻好放在桌上了,不用每道题都重新翻。

没有缓存的 AI = 每道题都要从第 1 页翻到最后一页。
有了缓存的 AI = 书已经翻好放在桌上了,直接看答案

🧑 场景版

你是客服,公司有一本 500 页的产品手册。

传统方式:每来一个客户问"这个产品怎么退货",你就从第 1 页开始翻,翻到第 387 页找到答案——每次都要翻 500 页。一天来 100 个客户,你就翻了 50000 页。

Context Caching 的方式:你第一次翻完后把关键页码折起来,后面的客户再问类似问题,直接翻到折角页——不到 1 秒就找到。省了 99% 的翻书时间,回答速度快了 10 倍。

🎓 精准版

Context Caching 的技术本质是 Transformer 架构中 KV Cache 的持久化复用

每次 forward pass,注意力层会为每个 token 生成 Key 和 Value 向量。正常情况下这些 KV 对在请求结束后丢弃。

Context Caching 把静态前缀(system prompt + 文档)的 KV 对序列化存储,后续请求如果前缀匹配,直接加载已有 KV,跳过前缀的 forward pass。

成本实测:Anthropic 缓存读取成本仅为原始输入的 10%($0.30/M vs $3.00/M tokens)。

🗺️ 概念坐标系:上下文缓存在 AI 世界的位置

理解一个概念,先知道它在哪——它的前后左右都是谁

🔧 前置概念
Token
AI 处理文本的最小单位。Context Caching 按 token 数量计费——缓存了多少 token,省了多少 token 的重复计算,都用 token 来衡量。
🔄 并列概念
RAG
也是处理长文档的技术,但 RAG 是"检索相关片段",Context Caching 是"缓存全文理解"。RAG 选择性地找,缓存整体地存。两者经常组合使用。
🔧 前置概念
Transformer
Context Caching 的 KV Cache 就来自 Transformer 的注意力机制。不理解 Transformer 怎么处理输入,就不理解"缓存中间计算结果"的含义。
🚀 下游问题
API 调用成本
Context Caching 直接解决"每次调用都重新处理长 prompt = 烧钱"的问题。有缓存后输入成本降到 10%,是 AI 应用降本的核心手段之一。

🎯 核心类比:翻书 vs 折角页

同一份合同,AI 每次怎么处理?

❌ 没有缓存

📖🔄

每次从第 1 页翻到第 500 页

$30/天

100 次 × 10 万 token × $3/M

VS

✅ 有了缓存

📑⚡

第 1 次翻完,后面直接翻到折角页

$3.30/天

1 次全价 + 99 次 × 10%

缓存工作的两个阶段

1
缓存写入:第一次请求时,AI 处理完 500 页合同,计算出所有 KV 向量,然后把它们存起来。——像你第一次认真翻完整本书,把重要的页码都折了角。
2
缓存命中:后续请求如果前缀一样,直接加载存好的 KV,跳过重复计算。——后面再查什么,直接翻到折角页,不用从头翻。

📦 拆开看:上下文缓存的四个核心部件

点击卡片翻转看详情

📝 缓存写入 点我翻转 ↻
第一次请求时,AI 处理完长 prompt 并存储中间计算结果(KV 向量)。像第一次翻完整本书,把页码记下来。这一步是"全价"的——因为确实在完整处理。 📖 第一次认真翻书
缓存命中 点我翻转 ↻
后续请求的前缀和缓存一致时,跳过重复计算,直接复用 KV。成本只有原来的 10%,速度快得多。像直接翻到折角页——省时省力。 📑 直接翻折角页
TTL 生存时间 点我翻转 ↻
缓存不是永久的——有过期时间。Anthropic 是 5 分钟,Google 可以设几天。过期后下次又要重新"翻书"。为什么?因为存 KV 向量需要 GPU 显存,存太久成本太高。 ⏰ 折角页会自动恢复
🔑 前缀匹配 点我翻转 ↻
只有请求的开头部分和缓存完全一致,才能命中缓存。改了一个字都不行——就像你翻的是第二版手册,第一版的折角页码对不上了。这意味着:system prompt + 文档要放在最前面,用户问题放最后。 🔐 必须是同一本书

🔄 Context Caching 怎么工作的?

点击每一步查看详情,或用按钮控制播放

📨 请求到达
🔍 前缀比对
💾 缓存命中?
🧠 只算新部分
✅ 返回结果
用户发来一个请求,包含 system prompt(指令)+ 文档(合同/手册)+ 用户问题。整个请求被发送到 AI 服务。

🧪 动手试试:API 成本计算器

调整参数,实时对比"有缓存 vs 无缓存"的成本和速度

System Prompt 长度 AI 的角色指令(如"你是一个法律助手")
tokens
文档/知识库长度 需要 AI 参考的文档内容
tokens
每天请求次数 每天有多少次调用使用同一份文档
次/天
❌ 无缓存 · 每次从头读
$30.60
100 次 × 102,000 tokens × $3/M
✅ 有缓存 · 只读一次
$3.37
1 次全价 + 99 次 × $0.30/M
省了 89%
每天节省 $27.23,每月节省 $816.83
日成本对比
$30.60
缓存后成本
$3.37

💡 举个例子:法律 AI 助手

同一份 50 页合同,100 个用户每天提问

❌ 没有 Context Caching

每次用户提问,AI 都要先"读"完一整份 50 页合同(约 10 万 token)。

每天 100 个用户 = 每天处理 1000 万 token 的重复输入。

每天烧 $30

合同内容没变,但 AI 每次都从头读。像每次开会前都要重新自我介绍。

响应时间:~5 秒(先读合同再回答)

✅ 有了 Context Caching

同一份合同第一次读完后缓存 KV 向量。后面 99 个用户提问,直接复用缓存。

1000 万 token 变成 10 万(只有第一次是全价)。

每天只花 $3.30

省了 89% 的费用。合同没变,AI 也不用每次重读了。

响应时间:~1 秒(直接从缓存开始)

⚠️ 别搞混

关于 Context Caching,三个最容易搞错的地方

❌ 很多人以为
Context Caching 是缓存"答案"——问过一次,下次直接出同样的回答。
✅ 其实是
不是缓存答案,是缓存"理解过程"。同样的背景文档,不同的问题,都能复用缓存。就像翻好的书不是只能回答一个问题——任何问题都可以直接查。
❌ 很多人以为
所有重复请求都会自动命中缓存。
✅ 其实是
只有前缀完全一致才命中。"你好,请帮我分析这份合同…"和"请帮我分析这份合同…"就是不同前缀——不会命中。改了一个字都不行,因为 KV 缓存是按位置精确对应的。
❌ 很多人以为
Context Caching 让 AI 变聪明了。
✅ 其实是
AI 的能力完全不变,只是处理速度变快、成本变低。就像快速翻书不等于读得更好——缓存不改变模型的推理能力,只是省去了重复的计算过程。

📏 类比的边界

翻书类比在哪里不完全准确

⚠️ 翻书只需要"看到"文字,而 AI 的缓存是存储 KV 向量——一种高维数学表示,不是简单的文字快照。缓存的是"理解后的数学结果",不是"原文复印件"。
⚠️ 真实的书翻过之后折角不会自动消失,但 AI 缓存有 TTL(过期时间)。Anthropic 的缓存 5 分钟不用就会过期——因为 GPU 显存是稀缺资源,存太久成本太高。
⚠️ 翻书的人可以跳着看、部分复用。AI 的缓存必须是精确的前缀匹配——只从开头开始匹配,中间或末尾不同就不行。比"翻书"严格得多。

🔗 相关概念

点击已解锁的概念继续探索

✅ 秒测:你真的懂了吗?

3 道题,验证你是否真正理解了 Context Caching

1第 1 题:Context Caching 缓存的是什么?
A. AI 的回答(下次问同样问题直接返回)
B. 用户的问题(记住用户问过什么)
C. AI 理解 prompt 的中间计算结果(KV 向量)
2第 2 题:以下哪种情况缓存不会命中?
A. 同一份文档,不同用户问不同问题
B. 同一个问题,但换了一份不同的文档
C. 完全相同的请求,5 分钟内再发一次
3第 3 题:Anthropic 的缓存读取成本大约是原始输入的多少?
A. 50%(省了一半)
B. 10%(省了九成)
C. 1%(几乎免费)

手机端可长按图片保存到相册