From 4ae8f877542347f203f706c385f55d8b76db9fbf Mon Sep 17 00:00:00 2001 From: alkscr <72345450+alkscr@users.noreply.github.com> Date: Tue, 13 May 2025 09:21:03 +0800 Subject: [PATCH] Fix: missing graph resolution and community extraction in graphrag tasks (#7586) ### What problem does this PR solve? Info of whether applying graph resolution and community extraction is storage in `task["kb_parser_config"]`. However, previous code get `graphrag_conf` from `task["parser_config"]`, making `with_resolution` and `with_community` are always false. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) - [ ] New Feature (non-breaking change which adds functionality) - [ ] Documentation Update - [ ] Refactoring - [ ] Performance Improvement - [ ] Other (please describe): --- graphrag/general/index.py | 2 +- rag/svr/task_executor.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/graphrag/general/index.py b/graphrag/general/index.py index 06aef6b48..4aa73ac40 100644 --- a/graphrag/general/index.py +++ b/graphrag/general/index.py @@ -88,7 +88,7 @@ async def run_graphrag( ) assert new_graph is not None - if not with_resolution or not with_community: + if not with_resolution and not with_community: return if with_resolution: diff --git a/rag/svr/task_executor.py b/rag/svr/task_executor.py index 14ce6fc53..51de6950b 100644 --- a/rag/svr/task_executor.py +++ b/rag/svr/task_executor.py @@ -537,9 +537,9 @@ async def do_handle_task(task): elif task.get("task_type", "") == "graphrag": global task_limiter task_limiter = trio.CapacityLimiter(2) - graphrag_conf = task_parser_config.get("graphrag", {}) - if not graphrag_conf.get("use_graphrag", False): + if not task_parser_config.get("graphrag", {}).get("use_graphrag", False): return + graphrag_conf = task["kb_parser_config"].get("graphrag", {}) start_ts = timer() chat_model = LLMBundle(task_tenant_id, LLMType.CHAT, llm_name=task_llm_id, lang=task_language) with_resolution = graphrag_conf.get("resolution", False)