标准答案
- 可缓存 Embedding、公共文档解析、稳定 Prompt 片段和明确版本的只读结果;模型回答缓存要谨慎,必须判断输入、用户权限、租户和新鲜度。
- 缓存 Key 至少包含任务版本、归一化输入、模型或路由版本、检索数据版本、租户和必要的权限范围;敏感内容不应进入共享缓存。
- 设置 TTL、主动失效、容量和命中率观测,缓存命中结果仍需做当前权限校验,不能把缓存当成授权绕过。
题目解析
Prompt 相同不代表结果可共享。上下文、用户身份、实时状态和工具结果可能不同;个性化答案缓存错误共享会造成数据泄露。
RAG 缓存还要考虑文档和 ACL 版本。文档删除或权限撤销后,缓存、预生成答案和引用必须失效。
缓存失效时的回源请求可能形成雪崩,应限制并发重建、使用短暂负缓存和预算控制。
常见误区
- 只用问题文本做缓存 Key。
- 命中缓存后跳过权限校验。
- 把敏感用户输入和模型输出写入共享 Redis,没有 TTL 和清理策略。