AI 严选AIAICN / API FIELD GUIDE
缓存诊断

提示词缓存为什么没命中?用 usage 字段核对读写 token

区分提示词缓存与应用缓存,检查稳定前缀、模型条件和 usage 缺失,并用本地账目示例验证缓存读取与写入不重复。

AI 严选 · 编辑整理(AI 辅助) · 写于 · 资料核对

本文目录
  1. 先分清你想复用的是什么
  2. 检查前缀稳定性与模型适用条件
  3. 看计数,不把未知当零
  4. 运行一个互斥账目检查
  5. 没有命中时,按变量做小范围对照
  6. 把计数带回费用估算,保留恢复办法
直接回答

不能凭“第二次更快”断定缓存命中。先确认服务支持哪种缓存,再读取该接口的 usage 明细。提示词缓存复用前缀计算,不等于直接返回上一次答案;应用缓存才通常由你的程序保存并返回完整结果。

适用前提

以当前 OpenAI Responses 文档中的输入明细为例;旧模型、Chat 接口或第三方平台可能提供不同字段。不要把本文演示字段直接套用到所有账单,也不要为命中率而重复提交敏感内容。

先分清你想复用的是什么

提示词缓存与“将问答结果存进 Redis”解决的是不同问题。前者仍需生成新输出;后者由应用决定是否跳过模型调用。先观察应用是否真的发出请求:若被本地结果缓存拦截,就不应把这次速度当作供应商提示词缓存表现。记录缓存层名称,避免把两种命中率混在同一张图表中。

检查前缀稳定性与模型适用条件

官方缓存指南强调可复用前缀与相关请求设置的一致性,最小长度、有效期及写入方式依模型而异。把相同的说明与工具定义放在稳定位置,将每次变化的任务信息放在后面,是值得验证的布局;不要在开头插入每次变化的时间戳。调换工具或输出 schema 后,也应重新检查,而非只比较肉眼可见的用户问题。

官方依据:来源 1

看计数,不把未知当零

在文档对应的 Responses 模型中,input_tokens_details.cached_tokens 表示读取计数;支持的模型还可返回 cache_write_tokens 与不同有效期的写入细分。先确认字段语义、是否包含在 input_tokens 中,再拆分账目。某个兼容服务不返回这些字段时,正确结论是“当前无法从响应核实”,不是“缓存不存在”。

官方依据:来源 1

运行一个互斥账目检查

以下数字全部是合成教学数据,不是商家价格或真实请求。保存为 cache-usage.mjs 并运行。只有确认计数互斥且都包含在 total 中,才可用减法算 ordinary;字段缺失会报错,防止静默补零。

JavaScript · 本地合成示例,不联网、不消耗 API 额度
function splitInput(total, cached, written) {
  if (![total,cached,written].every(Number.isSafeInteger) ||
      Math.min(total,cached,written)<0 || cached+written>total)
    throw new Error('用量缺失、无效或不满足互斥口径');
  return {ordinary:total-cached-written, cached, written};
}
const usage = splitInput(10000, 6000, 2000);
console.assert(usage.ordinary === 2000);
const hitRate = usage.cached / 10000;
console.assert(hitRate === 0.6);
console.log(usage, '缓存读取占比', hitRate);
// 这里只核对数量。单价、币种、缓存有效期必须另查真实账单。

没有命中时,按变量做小范围对照

先固定模型与客户端配置,再对照前缀是否真正相同;如果只是短提示词,先核对该模型的最低条件。每轮只改变一项,例如是否在前缀插入时间、工具定义顺序或间隔时长。记录请求 ID、输入量、读取量、写入量与异常原因,控制次数和预算。本站没有执行这一付费验证,也不保证改布局就一定命中。

把计数带回费用估算,保留恢复办法

同一有效期、同一写入单价的场景,可把互斥计数填入本站费用估算器。若写入分成多个有效期,不要把它们合并后套同一个单价;分项计算或使用真实账单。写入成本也要计入比较,不能只看读取占比。若优化后总费用或任务正确性变差,恢复原提示词布局并保留对照记录;应用结果缓存还需独立处理过期与数据隔离。

来源与适用边界

2026-10-21 阅读下列官方资料。操作步骤为本站编辑归纳,代码与数字为本地合成示例;未调用付费模型,不是服务商实测报告,也不构成接口或性能承诺。

  1. https://developers.openai.com/api/docs/guides/prompt-caching