From ca4f7aa65db4a1ec1ae9f12c406a62a16afdb663 Mon Sep 17 00:00:00 2001 From: Timebomb2018 <18868801967@163.com> Date: Thu, 9 Apr 2026 19:35:43 +0800 Subject: [PATCH] refactor(rag/nlp): refactor reranking logic to apply post-deduplication and remove debug log --- api/app/core/rag/nlp/search.py | 9 +++++++-- api/app/services/draft_run_service.py | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/api/app/core/rag/nlp/search.py b/api/app/core/rag/nlp/search.py index 371facb4..61540ee4 100644 --- a/api/app/core/rag/nlp/search.py +++ b/api/app/core/rag/nlp/search.py @@ -115,9 +115,8 @@ def knowledge_retrieval( # Use the specified reranker for re-ranking if reranker_id: try: - return rerank(db=db, reranker_id=reranker_id, query=query, docs=all_results, top_k=reranker_top_k) + all_results = rerank(db=db, reranker_id=reranker_id, query=query, docs=all_results, top_k=reranker_top_k) except Exception as rerank_error: - # If reranker fails, log warning and continue with original results logger.warning( "Reranker failed, falling back to original results", extra={ @@ -254,6 +253,12 @@ def _retrieve_for_knowledge( seen_ids.add(doc.metadata["doc_id"]) unique_rs.append(doc) rs = unique_rs + if unique_rs: + rs = vector_service.rerank( + query=kb_config["query"], + docs=unique_rs, + top_k=kb_config["top_k"] + ) if kb_config["retrieve_type"] == "graph": try: from app.core.rag.common.settings import kg_retriever diff --git a/api/app/services/draft_run_service.py b/api/app/services/draft_run_service.py index 8a381c8f..978dfdab 100644 --- a/api/app/services/draft_run_service.py +++ b/api/app/services/draft_run_service.py @@ -223,7 +223,6 @@ def create_knowledge_retrieval_tool(kb_config, kb_ids, user_id, citations_collec retrieve_chunks_result = knowledge_retrieval(query, kb_config) if retrieve_chunks_result: - logger.warning(f"检索知识结果:{retrieve_chunks_result}") retrieval_knowledge = [i.page_content for i in retrieve_chunks_result] context = '\n\n'.join(retrieval_knowledge) logger.info(