马一丁

Prevent stale state reuse in knowledge graph build

@@ -1609,6 +1609,9 @@ class ReportAgent: @@ -1609,6 +1609,9 @@ class ReportAgent:
1609 'forum_logs': '', 1609 'forum_logs': '',
1610 'states': {} # 新增:用于 GraphRAG 的 State JSON 1610 'states': {} # 新增:用于 GraphRAG 的 State JSON
1611 } 1611 }
  1612 +
  1613 + # 重要:清空上一次任务的状态数据,防止污染当前任务的知识图谱
  1614 + self._loaded_states = {}
1612 1615
1613 # 加载报告文件 1616 # 加载报告文件
1614 engines = ['query', 'media', 'insight'] 1617 engines = ['query', 'media', 'insight']
@@ -1630,8 +1633,6 @@ class ReportAgent: @@ -1630,8 +1633,6 @@ class ReportAgent:
1630 if parsed_state: 1633 if parsed_state:
1631 content['states'][engine] = parsed_state 1634 content['states'][engine] = parsed_state
1632 # 同时保存到实例属性,供 _build_knowledge_graph 使用 1635 # 同时保存到实例属性,供 _build_knowledge_graph 使用
1633 - if not hasattr(self, '_loaded_states'):  
1634 - self._loaded_states = {}  
1635 self._loaded_states[engine] = parsed_state 1636 self._loaded_states[engine] = parsed_state
1636 logger.info(f"已加载 {engine} State JSON: {len(parsed_state.sections)} 个段落") 1637 logger.info(f"已加载 {engine} State JSON: {len(parsed_state.sections)} 个段落")
1637 1638