fix: search_hybrid 改用改写后的 retrieval_query + 清理 engine.py 死代码
关键修复:
- chat_routes.py: search_hybrid(message,...) → search_hybrid(retrieval_query,...)
修复无状态模式下追问场景("那工作流程呢?")用原始模糊文本做向量检索的问题,
现在使用意图分析改写后的完整查询("货源投放的具体工作流程是什么?")
死代码清理 (Claude Code review 反馈):
- engine.py: 移除 4 处未使用的 doc_ids 变量和 2 处过时注释
This commit is contained in:
@@ -2351,7 +2351,7 @@ def rag():
|
|||||||
sub_queries = intent.sub_queries
|
sub_queries = intent.sub_queries
|
||||||
|
|
||||||
search_result = search_hybrid(
|
search_result = search_hybrid(
|
||||||
message,
|
retrieval_query,
|
||||||
top_k=RAG_SEARCH_TOP_K,
|
top_k=RAG_SEARCH_TOP_K,
|
||||||
candidates=RAG_SEARCH_CANDIDATES,
|
candidates=RAG_SEARCH_CANDIDATES,
|
||||||
allowed_collections=collections,
|
allowed_collections=collections,
|
||||||
|
|||||||
@@ -559,7 +559,6 @@ class RAGEngine:
|
|||||||
top_dist = result['distances'][0][0] if result.get('distances') and result['distances'][0] else 1.0
|
top_dist = result['distances'][0][0] if result.get('distances') and result['distances'][0] else 1.0
|
||||||
top_score = 1.0 - top_dist
|
top_score = 1.0 - top_dist
|
||||||
if top_score >= CACHE_MIN_SCORE:
|
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)
|
cache.set_query_result(query, kb_name, result)
|
||||||
result['_debug'] = _debug
|
result['_debug'] = _debug
|
||||||
return result
|
return result
|
||||||
@@ -581,7 +580,6 @@ class RAGEngine:
|
|||||||
top_dist = result['distances'][0][0] if result.get('distances') and result['distances'][0] else 1.0
|
top_dist = result['distances'][0][0] if result.get('distances') and result['distances'][0] else 1.0
|
||||||
top_score = 1.0 - top_dist
|
top_score = 1.0 - top_dist
|
||||||
if top_score >= CACHE_MIN_SCORE:
|
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)
|
cache.set_query_result(query, kb_name, result)
|
||||||
result['_debug'] = _debug
|
result['_debug'] = _debug
|
||||||
return result
|
return result
|
||||||
@@ -617,8 +615,6 @@ class RAGEngine:
|
|||||||
top_dist = result['distances'][0][0] if result.get('distances') and result['distances'][0] else 1.0
|
top_dist = result['distances'][0][0] if result.get('distances') and result['distances'][0] else 1.0
|
||||||
top_score = 1.0 - top_dist
|
top_score = 1.0 - top_dist
|
||||||
if top_score >= CACHE_MIN_SCORE:
|
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)
|
cache.set_query_result(query, kb_name, result)
|
||||||
_debug['timing']['total_ms'] = int((time.time() - _overall_start) * 1000)
|
_debug['timing']['total_ms'] = int((time.time() - _overall_start) * 1000)
|
||||||
result['_debug'] = _debug
|
result['_debug'] = _debug
|
||||||
@@ -810,8 +806,6 @@ class RAGEngine:
|
|||||||
top_dist = fused_results['distances'][0][0] if fused_results.get('distances') and fused_results['distances'][0] else 1.0
|
top_dist = fused_results['distances'][0][0] if fused_results.get('distances') and fused_results['distances'][0] else 1.0
|
||||||
top_score = 1.0 - top_dist # 距离转相似度
|
top_score = 1.0 - top_dist # 距离转相似度
|
||||||
if top_score >= CACHE_MIN_SCORE: # 置信度阈值
|
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)
|
cache.set_query_result(query, kb_name, fused_results)
|
||||||
|
|
||||||
fused_results['_debug'] = _debug
|
fused_results['_debug'] = _debug
|
||||||
|
|||||||
Reference in New Issue
Block a user