给 Claude 打开 Prompt Caching 复用长上下文
按 Anthropic Prompt Caching 文档,给长文档或工具说明加上 cache_control。
基于 Claude Docs 整理 · Prompt Caching · 官方资料
Claude 的 Prompt Caching 通过 cache_control 标记可缓存块。适合反复附带同一份长文档、工具定义或系统策略的请求。
这篇完成:构造带 cache_control 的消息,连续请求两次,并观察缓存读写相关 usage。
给内容块加上 cache_control
官方 cache_control 示例结构
python
import anthropic
client = anthropic.Anthropic()
big_doc = open("spec.md", encoding="utf-8").read()
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system=[
{
"type": "text",
"text": "你只根据提供的规范回答。",
"cache_control": {"type": "ephemeral"},
}
],
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": big_doc,
"cache_control": {"type": "ephemeral"},
},
{"type": "text", "text": "总结第 2 章的约束。"},
],
}
],
)
print(msg.usage)最容易踩的坑
缓存未命中
确认标记块内容完全一致,且满足官方最小 token 门槛;动态问题不要放进缓存块。
官方资料
Claude DocsPrompt caching相关 AI 模型
相关 TodayAI 指南
- 用 Structured Outputs 拿到可解析的模型结果用 json_schema + strict 约束 Chat Completions 输出,让结果可以直接解析进入应用逻辑。
- 用 Gemini Embeddings 做文本向量化按 Gemini API Embeddings 文档:用 embedContent 生成向量,配置 task 前缀或 task_type,并用 output_dimensionality 控制维度。
- 用 Gemini Structured Outputs 约束 JSON 结果按官方 Structured outputs:用 JSON Schema / Pydantic 约束 Gemini 的最终回答格式,提取菜谱等结构化数据并可直接校验。