解决claude code调用gpt接口不命中缓存问题

2026-04-13 13:200阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

把 /v1/messages 请求转换成 /v1/responses 请求时,除了转换:

  • model
  • system
  • messages
  • tools

这些结构字段外,还应该处理好缓存相关参数。

其中一个关键点是:

prompt_cache_key 要写到 /v1/responses 的请求体顶层

最终生成的 /v1/responses 请求体应该是这种形式:

{
“model”: “gpt-5.4”,
“input”: […],
“stream”: true,
“prompt_cache_key”: “xxx”
}

这里的 prompt_cache_key 是 请求体参数,需要显式写进去。

———

这个值怎么得到

转换 /v1/messages 时,可以按这个顺序生成 prompt_cache_key:

1. 先取现成的会话标识

优先从请求头读取:

  • session_id
  • conversation_id

如果有值,就可以直接作为缓存标识来源。

———

2. 如果没有,再从 metadata.user_id 里提取

有些 /v1/messages 请求会在 body 里带:

{
“metadata”: {
“user_id”: “…”
}
}

这里的 metadata.user_id 通常包含稳定的会话信息,可以从中解析出 session 相关值。

———

3. 如果需要,可以基于这些值生成稳定的 key

例如基于:

  • model + metadata.user_id

生成一个稳定 UUID 或 hash,把它作为 prompt_cache_key。

阅读全文
问题描述:

把 /v1/messages 请求转换成 /v1/responses 请求时,除了转换:

  • model
  • system
  • messages
  • tools

这些结构字段外,还应该处理好缓存相关参数。

其中一个关键点是:

prompt_cache_key 要写到 /v1/responses 的请求体顶层

最终生成的 /v1/responses 请求体应该是这种形式:

{
“model”: “gpt-5.4”,
“input”: […],
“stream”: true,
“prompt_cache_key”: “xxx”
}

这里的 prompt_cache_key 是 请求体参数,需要显式写进去。

———

这个值怎么得到

转换 /v1/messages 时,可以按这个顺序生成 prompt_cache_key:

1. 先取现成的会话标识

优先从请求头读取:

  • session_id
  • conversation_id

如果有值,就可以直接作为缓存标识来源。

———

2. 如果没有,再从 metadata.user_id 里提取

有些 /v1/messages 请求会在 body 里带:

{
“metadata”: {
“user_id”: “…”
}
}

这里的 metadata.user_id 通常包含稳定的会话信息,可以从中解析出 session 相关值。

———

3. 如果需要,可以基于这些值生成稳定的 key

例如基于:

  • model + metadata.user_id

生成一个稳定 UUID 或 hash,把它作为 prompt_cache_key。

阅读全文