fix: 缓存系统全面加固 — 版本失效 + 死代码清理 + 防御性改进
基于缓存审查报告 + Claude Code 交叉审查的反馈: P0+ 语义缓存版本失效: - sync.py: 文档变更后清空语义缓存,防止返回过时的 images/sources - document_routes.py: 删除文档时同步清理缓存 - kb_routes.py: 删除向量库时同步清理缓存 P1.5 cache_type 包含式校验: - intent_analyzer.py: != "rag_answer" 改为 == "intent_analysis" P2+ Rerank Cache 版本失效: - cache.py: increment_kb_version 时同时清空 rerank_cache P1+P6 死代码清理: - agentic.py: 移除未使用的 SemanticCache 实例和相关导入 - agentic_base.py: 移除未使用的语义缓存配置导入 - cache.py: 移除 _compute_doc_hash 和未使用的 doc_ids 参数 - engine.py: 移除 set_query_result 调用中的 doc_ids 参数 P7 缓存质量门槛: - config.py: CACHE_MIN_SCORE 从 0.0 改为 0.3
This commit is contained in:
@@ -560,7 +560,7 @@ class RAGEngine:
|
||||
top_score = 1.0 - top_dist
|
||||
if top_score >= CACHE_MIN_SCORE:
|
||||
doc_ids = result.get('ids', [[]])[0] if result.get('ids') else []
|
||||
cache.set_query_result(query, kb_name, result, doc_ids=doc_ids)
|
||||
cache.set_query_result(query, kb_name, result)
|
||||
result['_debug'] = _debug
|
||||
return result
|
||||
|
||||
@@ -582,7 +582,7 @@ class RAGEngine:
|
||||
top_score = 1.0 - top_dist
|
||||
if top_score >= CACHE_MIN_SCORE:
|
||||
doc_ids = result.get('ids', [[]])[0] if result.get('ids') else []
|
||||
cache.set_query_result(query, kb_name, result, doc_ids=doc_ids)
|
||||
cache.set_query_result(query, kb_name, result)
|
||||
result['_debug'] = _debug
|
||||
return result
|
||||
except Exception as e:
|
||||
@@ -619,7 +619,7 @@ class RAGEngine:
|
||||
if top_score >= CACHE_MIN_SCORE:
|
||||
# 传递 doc_ids 实现细粒度缓存失效
|
||||
doc_ids = result.get('ids', [[]])[0] if result.get('ids') else []
|
||||
cache.set_query_result(query, kb_name, result, doc_ids=doc_ids)
|
||||
cache.set_query_result(query, kb_name, result)
|
||||
_debug['timing']['total_ms'] = int((time.time() - _overall_start) * 1000)
|
||||
result['_debug'] = _debug
|
||||
return result
|
||||
@@ -812,7 +812,7 @@ class RAGEngine:
|
||||
if top_score >= CACHE_MIN_SCORE: # 置信度阈值
|
||||
# 传递 doc_ids 实现细粒度缓存失效
|
||||
doc_ids = fused_results.get('ids', [[]])[0] if fused_results.get('ids') else []
|
||||
cache.set_query_result(query, kb_name, fused_results, doc_ids=doc_ids)
|
||||
cache.set_query_result(query, kb_name, fused_results)
|
||||
|
||||
fused_results['_debug'] = _debug
|
||||
_debug['timing']['total_ms'] = int((time.time() - _overall_start) * 1000)
|
||||
|
||||
Reference in New Issue
Block a user