链载Ai

标题: Anthropic 新功能解读:提示词缓存(Prompt Caching) [打印本页]

作者: 链载Ai    时间: 昨天 21:14
标题: Anthropic 新功能解读:提示词缓存(Prompt Caching)

ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;padding-left: 12px;color: rgb(63, 63, 63);">简介

ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(0, 152, 116);">提示词缓存(Prompt Caching)允许你将输入中的大段稳定内容(如长文档、背景信息、系统指令等)缓存起来。这样后续请求只要内容不变,就能直接复用缓存,ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(0, 152, 116);">避免重复处理,显著提升响应速度并节省费用。适用于多轮对话、长文档分析、批量问答等场景。

ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;padding-left: 12px;color: rgb(63, 63, 63);">什么时候考虑使用

ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(0, 152, 116);">类似 Redis 等缓存策略,当有大量重复利用的上下文时,建议启用提示词缓存。

ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">不同的是,ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(0, 152, 116);">提示词缓存更偏好长内容,因为缓存读取只要基础输入的ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(0, 152, 116);">10%的费用

比如可以针对以下场景进行针对性的优化:

通过结合自身场景,合理利用缓存,可以显著优化API调用的成本和响应速度。

价格

官方针对价格描述的很清楚,所以你要多输入少输出,因为输出是输入的 5 倍,没有变。


特别说明下:每当你在5分钟内再次用到这份缓存(比如用相同的内容发起请求),缓存的有效期会重新变成5分钟,并且这个“刷新”不会产生额外费用

如何使用

只需在API请求中用cache_control标记要缓存的内容,后续同样内容会自动复用缓存,无需手动管理缓存生命周期。这样可以大幅降低大输入场景下的API成本和延迟。

以下是如何使用cache_control块通过Messages API实现提示缓存的示例:

importAnthropicfrom'@anthropic-ai/sdk';

constclient =newAnthropic();

constresponse =awaitclient.messages.create({
model:"claude-opus-4-20250514",
max_tokens:1024,
system: [
{
type:"text",
text:"You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n",
},
{
type:"text",
text:"<the entire contents of 'Pride and Prejudice'>",
cache_control: {type:"ephemeral"}
}
],
messages: [
{
role:"user",
content:"Analyze the major themes in 'Pride and Prejudice'."
}
]
});
console.log(response.usage);

// Call the model again with the same inputs up to the cache checkpoint
constnew_response =awaitclient.messages.create(...)
console.log(new_response.usage);

response

{"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
{"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

使用时注意事项

提示词缓存常见问题

1. 缓存的生命周期有多久?

默认缓存有效期为5分钟。如果5分钟内再次命中缓存,有效期会自动延长5分钟。也可以通过参数设置为1小时。

2. 我可以定义多少个缓存断点?

每个请求最多可设置4个缓存断点(即4个 ‎cache_control标记)。

3. 哪些模型支持提示词缓存?

目前支持 Claude Opus 4、Claude Sonnet 4、Claude Sonnet 3.7、Claude Sonnet 3.5、Claude Haiku 3.5、Claude Haiku 3、Claude Opus 3。

4. 缓存最小长度是多少?

5. 缓存对输出内容有影响吗?

没有影响。缓存只优化输入部分,输出内容和不使用缓存时完全一致。

6. 缓存会在不同组织之间共享吗?

不会。缓存严格隔离在各自组织内,不同组织即使内容完全相同也不会共享缓存。

7. 什么情况下缓存会失效?

8. 如何判断请求是否命中缓存?

查看API响应的 ‎usage字段,‎cache_read_input_tokens大于0表示命中缓存。

9. 可以手动清除缓存吗?

不可以。缓存只能在生命周期结束后自动过期。

10. 缓存可以和哪些API功能一起用?

可以和工具调用、视觉能力等功能结合使用。但更改是否包含图片或工具设置会使缓存失效。

11. 缓存读取和写入如何计费?

12. 缓存安全性如何?

缓存采用加密哈希,且组织隔离,保证数据安全和隐私。

以上是关于所有内容,感觉还是贵,希望 Anthropic 能针对输出也能做缓存。不知道国内厂商是不是有类似功能,毕竟给 Agent 加缓存,就像给软件加缓存,又快有高效。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5