Skip to Content
Wiki接口功能提示缓存

提示缓存 - MyTokenGate

1. 使用场景

当多次请求共享同一段较长的前缀(如系统提示、长文档、工具定义、多轮历史),提示缓存可以复用已处理过的这部分内容,从而降低费用、缩短首字延迟。命中缓存的输入 Token 按更低的缓存读取价计费。

典型场景:

  • 携带同一份长文档反复问答
  • 固定的长系统提示 + 大量工具定义
  • 多轮对话中不断增长但前缀稳定的历史

2. 两种缓存方式

MyTokenGate 网关同时支持自动缓存与显式缓存,取决于你使用的接口。

2.1 自动缓存(OpenAI 兼容接口)

通过 /v1/chat/completions 请求时,无需任何额外参数。上游会自动识别重复的长前缀并命中缓存,命中量通过用量字段回传:

"usage": { "prompt_tokens": 4200, "prompt_tokens_details": { "cached_tokens": 4096 } }

其中 cached_tokens 即为本次命中缓存的输入 Token 数,按缓存读取价计费。是否命中、命中多少由上游决定,通常要求前缀达到一定长度且内容完全一致。

2.2 显式缓存(Anthropic 兼容接口)

通过 /v1/messages 请求时,可在 systemmessages 内容块或工具定义上添加 cache_control 标记缓存断点:

{ "system": [ { "type": "text", "text": "你是一名助手,可访问以下文档:……", "cache_control": { "type": "ephemeral" } } ] }

命中情况通过用量字段回传:

字段含义
cache_creation_input_tokens写入缓存的 Token(首次,按缓存写入价计费)
cache_read_input_tokens命中缓存读取的 Token(按更低的缓存读取价计费)

缓存默认有效期为 5 分钟,每次命中会刷新计时;部分模型支持 1 小时有效期(写入价更高)。

3. 注意事项

  • 缓存以前缀为单位:只有从头开始完全一致的内容才可能命中,任何改动都会使其后的内容重新计算。
  • 将稳定内容(系统提示、文档、工具定义)放在前面,把变化的用户输入放在后面,命中率最高。
  • OpenAI 兼容接口的自动缓存不接受 cache_control,该字段在协议转换时会被忽略。
  • 具体价格以模型广场 的缓存读取/写入价为准。

用量字段的完整说明见 Chat CompletionsMessages

Last updated on