prompt 缓存因供应商和模型而异。不支持的供应商会忽略缓存提示,或在不采用缓存计费的情况下路由请求。请查看模型页面的价格表,了解缓存读写费率。
缓存内容
缓存各请求之间保持稳定的内容:- 较长的系统指令
- 重复使用的 RAG 文档
- few-shot 示例
- 工具定义
- 下一轮会再次使用的大型工具结果
缓存控制
Phaseo 在 Chat Completions、Responses 和 Anthropic Messages 请求中接受顶层兼容性提示cache_control:
ttl: "5m";当供应商和模型支持更长时间的 prompt 缓存时,使用 ttl: "1h"。支持该功能的供应商会将顶层缓存控制视为自动或默认缓存策略。
你也可以在受支持的文本、图像、工具结果和工具定义块上直接设置 cache_control,以明确指定缓存断点:
provider_options 应用默认的 Anthropic 缓存策略:
scope 值:
块级
cache_control 优先于默认策略。
Chat Completions
使用 OpenAI 兼容的聊天客户端时,请使用/v1/chat/completions。
Responses
对于新的 OpenAI 兼容文本集成和智能体流程,请使用/v1/responses。
provider_options.google.cached_content 传入:
Anthropic Messages
客户端兼容 Anthropic 时,请使用/v1/messages。
system文本块- 消息文本块和图像块
- 工具结果块
- 工具定义
用量与定价字段
供应商返回缓存用量时,Phaseo 会将其规范化为通用用量字段。
缓存写入通常比普通输入 token 更贵,读取通常更便宜。具体价格取决于供应商、模型和 TTL。
实际检查
添加 prompt 缓存后:- 发送一个请求以创建或预热缓存。
- 使用相同的可缓存内容发送第二个请求。
- 检查响应用量和请求详情中的缓存读写字段。
- 比较多次调用的延迟和成本,不要只看第一次。
供应商亲和性
默认情况下,Phaseo 会将供应商 prompt 缓存用量作为路由信号。当供应商 返回缓存输入 token 后,具有相同缓存键或稳定开头上下文的请求 会优先使用该供应商 15 分钟。这样就无需付费让另一个 供应商重新构建相同的 prompt 缓存。 如果包含session_id,观察到缓存读取时也会创建会话亲和性。
Phaseo 会在当前会话窗口内保留该亲和性,同时仍允许
在供应商异常或不再符合策略条件时进行故障转移。
如需对单个请求停用此功能,请将 provider.cache_aware_routing 设为 false。如果请求中
包含 session_id,但你只想使用常规的上下文路由,请将 routing.session_affinity
设为 false。