变换
自动缓存: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 数会映射到此字段。中转服务可能自行选择账号、限制缓存保留时间或过滤字段。请核对中转服务的行为,不要假定一定命中缓存。
参考信息
| 属性 | 值 |
|---|---|
| 类型 ID | cache_openai_prompt |
| 阶段 | request |
| 范围 | Provider, 全局, API 密钥 |
适用场景
- 上游兼容 OpenAI 协议,且缓存命中的输入 token 价格更低。
- 客户端自己不设置
prompt_cache_key。
配置
| 选项 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
retention | string | 否 | "24h" | 24h 或 in_memory。发送给上游的缓存保留提示。 |
key_prefix | string | 否 | "mzpc" | 生成的 prompt_cache_key 的前缀。 |
key_mode | string | 否 | "prefix" | prefix 从会话前缀派生键;identity 每个身份使用一个键。 |
include_user_in_key | boolean | 否 | false | 把 Monoize 用户混入键中,避免用户之间共享缓存条目。 |
include_full_input_in_key | boolean | 否 | false | 对完整输入取哈希,而不是仅对稳定前缀。 |
示例规则
{
"transform": "cache_openai_prompt",
"enabled": true,
"phase": "request",
"models": [
"gpt-*"
],
"config": {
"retention": "24h",
"key_mode": "prefix"
}
}