logo

Claude Prompt Caching (提示词缓存)

Prompt Caching 是 Anthropic 推出的一项突破性功能。它允许你缓存频繁使用的长文本(如整本书、庞大的代码库或复杂的角色设定),从而显著降低延迟并大幅减少费用。

1. 为什么需要缓存?

在传统的 API 调用中,每次请求都要重新计算所有的 Token。

  • 长文本场景:如果你每次都发送同一个 100K Token 的文档,成本会极高。
  • 响应速度:处理大量上下文需要时间,导致首字延迟(TTFT)增加。

Prompt Caching 的优势:

  • 省钱:缓存命中部分的费用最高可降低 90%
  • 提速:缓存命中部分的计算时间几乎为零,大幅降低延迟。

2. 如何使用缓存?

你只需要在 messagessystem 内容中添加一个 cache_control 断点。

代码示例 (Python)

import anthropic

client = anthropic.Anthropic()

# 假设这是一段非常长的背景资料
long_document = "这里是 5 万字的法律条文..."

message = client.messages.create(
    model="claude-3-5-sonnet-20240620",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": long_document,
                    "cache_control": {"type": "ephemeral"} # 在这里设置缓存断点
                },
                {
                    "type": "text",
                    "text": "请根据以上条文回答:如果发生 X 情况,应该如何判罚?"
                }
            ],
        }
    ],
)

3. 核心限制与规则

  • 最小缓存单位
    • Claude 3.5 Sonnet: 1024 Tokens 起步。
    • Claude 3 Haiku: 2048 Tokens 起步。
  • 缓存寿命:目前为 5 分钟(如果没有新的请求使用该缓存)。每次命中缓存,计时器会重置。
  • 最大断点数:单次请求最多支持 4 个缓存断点。

4. 推荐应用场景

A. RAG 系统

将核心知识库或检索到的长文档缓存,用户针对同一文档进行多轮追问时极其高效。

B. 角色扮演游戏

缓存庞大的世界设定、角色属性和剧情大纲。

C. 编程助手

缓存整个项目的核心结构定义和 API 文档。

5. 成本估算

缓存的计费分为两部分:

  1. 写入费 (Write Fee):首次存入缓存时的费用(比普通输入略贵)。
  2. 命中费 (Read/Hit Fee):从缓存读取的费用(极低,通常仅为原价的 1/10)。

结论:如果你的应用涉及 1000 Tokens 以上 的固定前缀或长文档,且用户会进行多次交互,务必使用 Prompt Caching

Claude API 开发指南
AI Engineer

Claude API 开发指南

Anthropic Claude API 提供了强大的 AI 模型访问,以安全性和准确性著称,适合企业级应用。

Claude API 开发指南Prompt Caching

Claude Prompt Caching (提示词缓存)

Prompt Caching 是 Anthropic 推出的一项突破性功能。它允许你缓存频繁使用的长文本(如整本书、庞大的代码库或复杂的角色设定),从而显著降低延迟并大幅减少费用。

#1. 为什么需要缓存?

在传统的 API 调用中,每次请求都要重新计算所有的 Token。

  • 长文本场景:如果你每次都发送同一个 100K Token 的文档,成本会极高。
  • 响应速度:处理大量上下文需要时间,导致首字延迟(TTFT)增加。

Prompt Caching 的优势:

  • 省钱:缓存命中部分的费用最高可降低 90%
  • 提速:缓存命中部分的计算时间几乎为零,大幅降低延迟。

#2. 如何使用缓存?

你只需要在 messagessystem 内容中添加一个 cache_control 断点。

#代码示例 (Python)

python
import anthropic client = anthropic.Anthropic() # 假设这是一段非常长的背景资料 long_document = "这里是 5 万字的法律条文..." message = client.messages.create( model="claude-3-5-sonnet-20240620", max_tokens=1024, messages=[ { "role": "user", "content": [ { "type": "text", "text": long_document, "cache_control": {"type": "ephemeral"} # 在这里设置缓存断点 }, { "type": "text", "text": "请根据以上条文回答:如果发生 X 情况,应该如何判罚?" } ], } ], )

#3. 核心限制与规则

  • 最小缓存单位
    • Claude 3.5 Sonnet: 1024 Tokens 起步。
    • Claude 3 Haiku: 2048 Tokens 起步。
  • 缓存寿命:目前为 5 分钟(如果没有新的请求使用该缓存)。每次命中缓存,计时器会重置。
  • 最大断点数:单次请求最多支持 4 个缓存断点。

#4. 推荐应用场景

#A. RAG 系统

将核心知识库或检索到的长文档缓存,用户针对同一文档进行多轮追问时极其高效。

#B. 角色扮演游戏

缓存庞大的世界设定、角色属性和剧情大纲。

#C. 编程助手

缓存整个项目的核心结构定义和 API 文档。

#5. 成本估算

缓存的计费分为两部分:

  1. 写入费 (Write Fee):首次存入缓存时的费用(比普通输入略贵)。
  2. 命中费 (Read/Hit Fee):从缓存读取的费用(极低,通常仅为原价的 1/10)。

结论:如果你的应用涉及 1000 Tokens 以上 的固定前缀或长文档,且用户会进行多次交互,务必使用 Prompt Caching

System Design

系统设计必备:核心概念 + 经典案例

快速掌握取舍与设计套路,备战系统设计面试。

进入 System Design →

相关路线图