diff --git a/lightrag/constants.py b/lightrag/constants.py index f98eb937..c9772167 100644 --- a/lightrag/constants.py +++ b/lightrag/constants.py @@ -19,11 +19,11 @@ DEFAULT_MAX_ENTITY_TOKENS = 10000 DEFAULT_MAX_RELATION_TOKENS = 10000 DEFAULT_MAX_TOTAL_TOKENS = 30000 DEFAULT_HISTORY_TURNS = 0 -DEFAULT_ENABLE_RERANK = True DEFAULT_COSINE_THRESHOLD = 0.2 DEFAULT_RELATED_CHUNK_NUMBER = 5 # Rerank configuration defaults +DEFAULT_ENABLE_RERANK = True DEFAULT_MIN_RERANK_SCORE = 0.0 # Separator for graph fields diff --git a/lightrag/utils.py b/lightrag/utils.py index 621cddee..87e91b0f 100644 --- a/lightrag/utils.py +++ b/lightrag/utils.py @@ -1874,24 +1874,25 @@ async def process_chunks_unified( # 2. Filter by minimum rerank score if reranking is enabled if query_param.enable_rerank and unique_chunks: min_rerank_score = global_config.get("min_rerank_score", 0.5) - original_count = len(unique_chunks) + if min_rerank_score > 0.0: + original_count = len(unique_chunks) - # Filter chunks with score below threshold - filtered_chunks = [] - for chunk in unique_chunks: - rerank_score = chunk.get("rerank_score", 1.0) # Default to 1.0 if no score - if rerank_score >= min_rerank_score: - filtered_chunks.append(chunk) + # Filter chunks with score below threshold + filtered_chunks = [] + for chunk in unique_chunks: + rerank_score = chunk.get("rerank_score", 1.0) # Default to 1.0 if no score + if rerank_score >= min_rerank_score: + filtered_chunks.append(chunk) - unique_chunks = filtered_chunks - filtered_count = original_count - len(unique_chunks) + unique_chunks = filtered_chunks + filtered_count = original_count - len(unique_chunks) - if filtered_count > 0: - logger.info( - f"Rerank filtering remained: {len(unique_chunks)} chunks (min rerank score: {min_rerank_score})" - ) - if not unique_chunks: - return [] + if filtered_count > 0: + logger.info( + f"Rerank filtering remained: {len(unique_chunks)} chunks (min rerank score: {min_rerank_score})" + ) + if not unique_chunks: + return [] # 3. Apply chunk_top_k limiting if specified if query_param.chunk_top_k is not None and query_param.chunk_top_k > 0: