From 78b2e0be890fd7b3913bbc9ca26c70e3652dc566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E5=A4=A7=E9=B9=8F?= Date: Wed, 5 Mar 2025 16:50:37 +0800 Subject: [PATCH] fix: issue #5600 (#5645) fix: issue https://github.com/infiniflow/ragflow/issues/5600 ### What problem does this PR solve? close issue https://github.com/infiniflow/ragflow/issues/5600 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- graphrag/general/community_reports_extractor.py | 7 ++++++- graphrag/general/leiden.py | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/graphrag/general/community_reports_extractor.py b/graphrag/general/community_reports_extractor.py index b294c543f..9ef7c173f 100644 --- a/graphrag/general/community_reports_extractor.py +++ b/graphrag/general/community_reports_extractor.py @@ -95,7 +95,12 @@ class CommunityReportsExtractor(Extractor): response = re.sub(r"\{\{", "{", response) response = re.sub(r"\}\}", "}", response) logging.debug(response) - response = json.loads(response) + try: + response = json.loads(response) + except json.JSONDecodeError as e: + logging.error(f"Failed to parse JSON response: {e}") + logging.error(f"Response content: {response}") + continue if not dict_has_keys_with_types(response, [ ("title", str), ("summary", str), diff --git a/graphrag/general/leiden.py b/graphrag/general/leiden.py index 212fe0c4f..98ecca704 100644 --- a/graphrag/general/leiden.py +++ b/graphrag/general/leiden.py @@ -120,6 +120,9 @@ def run(graph: nx.Graph, args: dict[str, Any]) -> dict[int, dict[str, dict]]: result = {} results_by_level[level] = result for node_id, raw_community_id in node_id_to_community_map[level].items(): + if node_id not in graph.nodes: + logging.warning(f"Node {node_id} not found in the graph.") + continue community_id = str(raw_community_id) if community_id not in result: result[community_id] = {"weight": 0, "nodes": []}