详细解释
缓存未命中(Cache Miss) 是 缓存命中 的反面:当你的请求前缀在服务端的缓存服务器上找不到完全匹配的记录时,就会触发未命中。此时模型必须执行完整的 Prefill 阶段,按全价计费、按完整长度计算 ITPM 配额。
造成未命中的常见原因
| 原因 | 说明 |
|---|---|
| 前缀不完全一致 | System Prompt 多了一个换行、一个空格、或者变量顺序不同,都会 100% 未命中 |
| 缓存过期 | 内存缓存通常 5–10 分钟无流量就会被淘汰(详见 缓存命中) |
| 请求被路由到不同机器 | 服务端按前缀 hash 做路由,但高并发下会出现”溢出路由”到无缓存的机器 |
| 模型不支持缓存 | 部分旧模型、轻量模型根本没开缓存功能 |
如何判断一次请求是否命中
所有主流厂商都会在 usage 对象里返回缓存字段,例如:
{
"usage": {
"prompt_tokens": 12000,
"prompt_tokens_details": {
"cached_tokens": 9600
}
}
}
缓存命中率 = cached_tokens ÷ prompt_tokens × 100%
唯元智创(Weimeta)在调用日志面板上给每条请求打了”命中/未命中”标签,并按天统计命中率趋势,低于 60% 时会有提示帮你排查前缀不稳定的根因。
常见问题
第一次请求肯定是未命中吗?
是的。同一前缀必须先有一次”写入缓存”的请求,后续请求才能命中。建议在系统启动时或用户高峰前做一次预热请求。