问题域/PD-297

LLM响应缓存

LLM Response Caching

LLM调用结果缓存,通过hash key去重避免重复计算,降低API成本

子问题

1.缓存key设计

2.缓存命中策略

3.流式响应处理

4.缓存失效与清理

5.缓存与文档生命周期的级联删除

6.缓存重建:从缓存恢复知识图谱而非重新调用 LLM

各项目的解法1 solutions

Signals

横向对比

维度LightRAG
缓存key设计扁平化三段式 mode:cache_type:md5_hash,单表存储所有类型
缓存命中策略MD5 精确匹配,query 含 11 参数哈希,extract 含 prompt+system+history
流式响应处理hasattr(__aiter__) 检测 AsyncIterator,自动跳过不缓存
缓存失效与清理chunk-cache 反向索引 llm_cache_list,支持按文档级联删除 + 全量 drop
去重检测写入前比较 existing_content == new_content,相同则跳过
双开关控制enable_llm_cache 控制 query/keywords,enable_llm_cache_for_entity_extract 独立控制抽取
缓存重建_get_cached_extraction_results 从缓存重建知识图谱,按 create_time 排序

最佳实践

1.扁平化key结构(mode:type:hash)

2.区分entity extraction和query缓存模式

3.chunk 维护 llm_cache_list 反向索引支持精确级联删除

4.cache_keys_collector 模式批量收集后统一更新反向索引

5.hasattr(__aiter__) 检测流式响应自动跳过缓存