使用OpenAI、Anthropic和Google模型进行Prompt缓存

作者:API传播员 · 2025-12-17 · 阅读时间:5分钟

提示缓存是提示大型语言模型(LLM)时降低成本和延迟的最简单方法之一。然而,不同模型提供商对提示缓存的实现方式略有不同。本文将集中介绍OpenAI、Anthropic和Google模型的提示缓存相关信息,并分享一些高级技巧和最佳实践,帮助开发者更高效地使用提示缓存。


什么是提示缓存?

提示缓存是一种通过重用提示中频繁重复的部分来优化请求的技术。例如,在一个聊天机器人中,如果系统消息是固定的,而用户消息是动态的,那么可以将系统消息缓存起来,每次只处理新的用户消息,而无需重复处理整个提示。

与传统缓存(如存储图像或API结果)不同,提示缓存存储的是输入的静态部分,因为LLM的输出是动态生成的,无法直接缓存。


为什么要使用提示缓存?

使用提示缓存可以带来以下两大好处:

  • 减少延迟:通过重用缓存的部分,显著提高响应速度。
  • 降低成本:缓存令牌的处理成本远低于非缓存令牌。

提示缓存是如何工作的?

提示缓存通过识别提示的前缀部分并存储它来实现。当一个新请求的前缀与缓存中的部分完全匹配时,模型会直接使用缓存数据,而无需重新计算。

示例

  • 第一个请求:发送“像财务助理一样行事…”(系统消息)。
  • 第二个请求:如果前缀完全相同,则会命中缓存;若有一个字符不同,则不会匹配。

提供商特定的提示缓存实现

OpenAI

  • 特点

    • 无需修改代码或添加额外的API头。
    • 支持1024个令牌或更长的提示。
    • 缓存令牌的延迟减少高达80%,成本降低50%。
    • 缓存寿命通常为5-10分钟,非高峰时段可延长至1小时。
    • 自动适用于GPT-4、GPT-4 Turbo等型号。
  • 最佳实践

    • 将静态内容(如系统消息)放在提示顶部,动态内容(如用户消息)放在底部,以提高缓存命中率。

Anthropic

  • 特点

    • 需要额外的API头和使用cache_control参数进行手动配置。
    • 支持最多四个缓存断点,按工具、系统和消息的顺序处理。
    • 缓存寿命为5分钟,每次使用时刷新。
    • 写入缓存的成本略高,但读取成本降低90%。
    • 适用于Claude 3.5和Claude 3.0等型号。
  • 最佳实践

    • 使用cache_control参数标记可缓存的部分。
    • 静态内容放在提示顶部,动态内容放在底部。

Google

  • 特点

    • 使用“上下文缓存”术语,需手动设置。
    • 默认缓存寿命为1小时,可自定义TTL。
    • 定价基于令牌存储时间和数量,缓存令牌的价格较低。
    • 适用于Gemini 1.5稳定版本。
  • 最佳实践

    • 利用CachedContent.create方法创建缓存,并通过GenerativeModel.from_cached_content方法在请求中包含缓存。

提示缓存的最佳实践

  1. 组织提示结构
    • 静态内容(如系统说明、背景信息)应位于提示顶部。
    • 动态内容(如用户输入)应位于提示底部。
  2. 使用分隔符
    • 使用明确的标记(如“###”)分隔静态和动态内容。
  3. 确保精确匹配
    • 缓存命中依赖于内容的精确匹配,包括格式和空白符。
  4. 监控缓存性能
    • 定期检查API响应中的缓存字段,分析缓存命中率和性能。

现实世界中的提示缓存应用

客户支持聊天机器人

  • 挑战:需要快速访问大型知识库并提供响应。
  • 解决方案:将知识库信息作为静态内容缓存,用户查询作为动态内容处理。
  • 结果:显著降低延迟和成本。

编码助手

  • 挑战:频繁访问文档和代码库。
  • 解决方案:缓存常用文档片段,确保代码示例一致。
  • 结果:提高代码建议的速度和准确性。

总结

提示缓存是一种有效的技术,可以通过重用提示的静态部分来减少延迟和降低成本。通过了解不同提供商的实现方式并遵循最佳实践,开发者可以显著提升应用程序的效率和用户体验。

原文链接: https://www.prompthub.us/blog/prompt-caching-with-openai-anthropic-and-google-models