From 339bc992593d4b4bf070217f20d093be438dc46a Mon Sep 17 00:00:00 2001 From: yangdx Date: Thu, 10 Apr 2025 20:31:52 +0800 Subject: [PATCH] Only merge new entities/edges during gleaning - Restrict gleaning to new entity names - Only add edges with new keys - Prevent similar decription of the same entity or edge --- lightrag/operate.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lightrag/operate.py b/lightrag/operate.py index b1b803db..2a64a791 100644 --- a/lightrag/operate.py +++ b/lightrag/operate.py @@ -613,11 +613,13 @@ async def extract_entities( glean_result, chunk_key, file_path ) - # Merge results + # Merge results - only add entities and edges with new names for entity_name, entities in glean_nodes.items(): - maybe_nodes[entity_name].extend(entities) + if entity_name not in maybe_nodes: # Only accetp entities with new name in gleaning stage + maybe_nodes[entity_name].extend(entities) for edge_key, edges in glean_edges.items(): - maybe_edges[edge_key].extend(edges) + if edge_key not in maybe_edges: # Only accetp edges with new name in gleaning stage + maybe_edges[edge_key].extend(edges) if now_glean_index == entity_extract_max_gleaning - 1: break