外观
缓存答案为什么仍要重新核对来源?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
答案缓存保存的是某次依据集合上的产物。即使查询文本完全相同,权限、来源版本、撤销状态或业务时间都可能已经变化,因此读取缓存时需要重新核对当前可用性,或使用足够表达这些条件的版本化协议。
EachOf 的设计将缓存产物与来源及版本联系起来。若依据不再成立,应拒绝当前使用、重新生成或按权限提供历史记录,不能简单依赖 TTL 等待自然过期。缓存中已有文本不代表它仍可被交给当前调用者。
高效实现可结合状态版本、依赖指纹与批量检查,避免每次全图扫描,但优化不能削弱失效语义。权限范围不同的请求也不能共享未隔离缓存;服务端已经缓存过不是再次披露的理由。
追问与回答
TTL 只有一分钟还需要检查吗
取决于承诺。若撤销要求立即生效,一分钟仍是不可接受的窗口;TTL 只能满足允许短期陈旧的场景。
如何区分历史答案与当前答案
返回明确的版本、依据时间与历史状态,并使用独立的授权检查;不要在普通召回中无标识混入历史内容。
易混淆点
- 认为命中缓存的路径可以跳过资源状态检查。
内容来源
- Android 与 AI 工程 Wiki · 原条目
q176