From 027c67a73c72957050c7e49fdb2d487321bbfa3d Mon Sep 17 00:00:00 2001 From: yangdx Date: Mon, 5 May 2025 11:58:33 +0800 Subject: [PATCH] Skip self-referential relationships in edge processing --- lightrag/operate.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lightrag/operate.py b/lightrag/operate.py index 373d39bf..2363d5eb 100644 --- a/lightrag/operate.py +++ b/lightrag/operate.py @@ -211,6 +211,11 @@ async def _handle_single_relationship_extraction( # Normalize source and target entity names source = normalize_extracted_info(source, is_entity=True) target = normalize_extracted_info(target, is_entity=True) + if source == target: + logger.debug( + f"Relationship source and target are the same in: {record_attributes}" + ) + return None edge_description = clean_str(record_attributes[3]) edge_description = normalize_extracted_info(edge_description) @@ -331,6 +336,9 @@ async def _merge_edges_then_upsert( pipeline_status_lock=None, llm_response_cache: BaseKVStorage | None = None, ): + if src_id == tgt_id: + return None + already_weights = [] already_source_ids = [] already_description = []