Monoize
变换

自动缓存:OpenAI prompt 缓存键

为兼容 OpenAI 的上游生成确定性的 prompt_cache_key。

行为

此变换根据请求内容计算确定性的 prompt_cache_key。它向 Responses 和 Chat Completions 上游发送缓存键及保留提示。缓存命中仍取决于输入前缀是否兼容,以及上游是否支持缓存。缓存键不保证命中率。

客户端已经设置 prompt_cache_key 时,此变换绝不覆盖。

Chat 客户端连接 Responses 上游

上游接受 /v1/responses 时,将 Channel 类型设为 responses。客户端仍可调用 /v1/chat/completions。Monoize 转换请求,并返回 Chat Completions JSON 或 SSE。

将 prompt_cache_key 放在 JSON 请求顶层。Monoize 将它保留在上游 Responses 请求体的顶层。SDK 的 extra_body 选项应将字段合并到实际请求的顶层。

在复用同一前缀的多轮请求中保持缓存键稳定。客户端不传缓存键时,启用此变换。未配置变换时,省略的缓存键仍保持省略。不要仅因下游使用 Chat Completions 就将 Channel 改为 chat_completion。

从 Chat 响应或末尾用量帧的 usage.prompt_tokens_details.cached_tokens 读取缓存 token 数。Responses 上游的缓存 token 数会映射到此字段。中转服务可能自行选择账号、限制缓存保留时间或过滤字段。请核对中转服务的行为,不要假定一定命中缓存。

参考信息

属性值
类型 IDcache_openai_prompt
阶段request
范围Provider, 全局, API 密钥

适用场景

  • 上游兼容 OpenAI 协议,且缓存命中的输入 token 价格更低。
  • 客户端自己不设置 prompt_cache_key。

配置

选项类型必填默认值说明
retentionstring否"24h"24h 或 in_memory。发送给上游的缓存保留提示。
key_prefixstring否"mzpc"生成的 prompt_cache_key 的前缀。
key_modestring否"prefix"prefix 从会话前缀派生键;identity 每个身份使用一个键。
include_user_in_keyboolean否false把 Monoize 用户混入键中,避免用户之间共享缓存条目。
include_full_input_in_keyboolean否false对完整输入取哈希,而不是仅对稳定前缀。

示例规则

{
  "transform": "cache_openai_prompt",
  "enabled": true,
  "phase": "request",
  "models": [
    "gpt-*"
  ],
  "config": {
    "retention": "24h",
    "key_mode": "prefix"
  }
}

本页目录