响应缓存与语义缓存
重复请求可以缓存响应。精确缓存按规范化输入加模型、参数、提示版本做键,命中可靠;语义缓存按向量相似度复相近问题的答案,能省更多调用,但必须设保守阈值并按租户隔离,只缓存非个性化内容,否则代价就是答非所问且很难被发现。
基本信息
| 精确缓存 | 键为规范化输入加模型、参数与提示版本 |
|---|---|
| 语义缓存 | 向量相似度命中,阈值保守,仅缓存非个性化内容 |
| 失效条件 | 提示版本或知识库更新即失效,并设 TTL |
| 隔离 | 跨租户不共享缓存条目,避免串答 |
| 观测 | 命中率、复用样本抽检、错误率变化 |
典型使用场景
- 文档问答:同一问题被反复提问,精确缓存直接省下一次生成
- 常见问法聚合:把表述不同但意图相同的问题归并,减少重复推理
- 高峰期削峰:缓存命中比重算快得多,缓解上游压力
- 成本压降:命中率是成本优化里最容易量化的手段之一
- 灰度期保护:新版本期间对高频问题保留上一版可用答案
缓存键与失效
缓存键与失效
key = hash(normalize(input) + model + params + prompt_version)
semantic: 相似度 >= 0.97 且同租户才允许复用
ttl: 24h
失效: prompt_version 变化 → 该前缀全量失效
审计: 命中率、复用样本抽检(每周抽 N 条人工确认)
# 个性化内容、含用户数据的回答一律不进共享缓存两类缓存的取舍
| 维度 | 精确缓存 | 语义缓存 |
|---|---|---|
| 命中条件 | 输入完全一致 | 语义相似度高 |
| 命中率 | 低但确定 | 高但需要阈值 |
| 风险 | 几乎无串答风险 | 阈值松则答非所问 |
| 适用内容 | 非个性化、稳定问答 | 常见问法聚合,需隔离 |
| 维护成本 | 低 | 需要向量库与抽检机制 |
语义缓存的错误很安静:答案看起来通顺,只是答的是另一个问题。上线前要有抽检机制,否则只能等用户投诉。