OpenAI的Prompt Caching深度解析 - Portkey

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

OpenAI的Prompt Caching功能为开发者提供了一个有效的解决方案,帮助应对API成本和响应时间管理的挑战。通过引入重复利用最近输入令牌的机制,该功能有望降低50%的成本,并显著减少重复任务的延迟。本文将深入解析OpenAI的Prompt Caching特性,探讨其与Portkey缓存系统的协同作用,并提供优化缓存策略的实用建议。


OpenAI的Prompt Caching功能解析

OpenAI为其最新的模型引入了Prompt Caching功能,支持以下模型:

  1. gpt-4o(不包括gpt-4o-2024-05-13和最新版本的聊天gpt-40)
  2. gpt-4o-mini
  3. o1预览
  4. o1-mini

Prompt Caching同样适用于这些模型的微调版本。当提示长度达到1024个令牌或更长时,系统会自动启用缓存,并以128个令牌为增量进行缓存。API请求的处理流程如下:

  • 缓存查找:检查提示的初始部分(前缀)是否已存储在缓存中。
  • 缓存命中:如果找到匹配的前缀,系统将直接使用缓存结果,从而降低延迟和成本。
  • 缓存未命中:若未找到匹配的前缀,系统会处理完整提示,并将其前缀缓存以供后续请求使用。

缓存前缀通常在5到10分钟内保持活动状态,但在非高峰时段可能延长至1小时。

可缓存内容类型

OpenAI的缓存系统支持多种内容类型,包括:

  • 消息:完整的消息数组,涵盖系统、用户和助手的交互。
  • 图像:用户消息中的链接图像及base64编码图像。
  • 工具使用:消息数组及可用工具列表。
  • 结构化输出:作为系统消息前缀的模式。

此外,OpenAI为缓存的输入令牌提供了50%的折扣,这对需要频繁处理类似查询的大规模应用程序尤为有利。


监控缓存使用情况

开发者可以通过API响应中的cached_tokens值监控缓存的使用情况。例如:

{
  "usage": {
    "total_tokens": 2306,
    "prompt_tokens": 2006,
    "completion_tokens": 300,
    "prompt_tokens_details": {
      "cached_tokens": 1920,
      "audio_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": ...
    }
  }
}

OpenAI Prompt Caching的最佳实践

优化提示结构

  1. 前加载静态内容:将不变的部分放在提示开头,以提高缓存命中率。
  2. 标准化模板:对类似任务使用一致的结构,增强可重用性。
  3. 结构化输入:采用JSON等格式统一表示数据。

最大化缓存命中率

  1. 批处理请求:将类似请求分组处理,增加连续缓存命中率。
  2. 关注令牌阈值:优化超过1024个令牌的提示,以充分利用缓存优势。
  3. 合理安排请求时间:在调度批处理时,考虑缓存的5-10分钟生命周期。

性能监控与优化

  1. 跟踪指标:通过API响应中的cached_tokens值监控缓存命中率。
  2. 分析与调整:定期检查缓存未命中情况,并优化提示结构。
  3. 持续改进:对提示结构进行A/B测试,定期审查常见API调用。

Portkey用户指南:OpenAI Prompt Caching的影响

作为Portkey用户,OpenAI的Prompt Caching功能可能会对您的体验产生以下影响:

潜在好处

  1. 更广泛的覆盖范围:Portkey支持更多模型,不局限于OpenAI。
  2. 成本节约:OpenAI提供的50%缓存折扣可显著降低长提示的成本。
  3. 性能提升:由于缓存发生在OpenAI和Portkey两级,某些查询的响应时间可能更快。
  4. 增强缓存性能:对于GPT-4o、GPT-4o-mini等模型,超过1024个令牌的提示缓存性能将显著提升。

不变的特性

  1. 语义缓存:Portkey的语义缓存基于上下文相似性,无需特定结构。
  2. 更长的缓存持续时间:Portkey的缓存可持续长达90天,远超OpenAI的1小时限制。
  3. 缓存控制:Portkey允许用户通过命名空间和强制刷新功能对缓存数据进行精细化管理。

优化缓存策略:结合OpenAI与Portkey

  1. 利用OpenAI缓存处理结构化查询:适合短时间内的重复查询。
  2. 回退到Portkey语义缓存:当OpenAI缓存未命中时,Portkey的语义缓存可提供支持,并兼容其他模型。

OpenAI的Prompt Caching与Portkey的结合,为AI应用开发提供了更高效、更经济的解决方案。开发者可以利用这些工具,打造更快速、更智能的AI驱动应用。


原文链接: https://portkey.ai/blog/openais-prompt-caching-a-deep-dive