From 9a58eb8e6d63ac5e10d0cc9724a84a89f8d195c2 Mon Sep 17 00:00:00 2001 From: root <953994191@qq.com> Date: Fri, 1 May 2026 23:09:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E5=9B=BE=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=EF=BC=9A=E6=9A=82=E6=97=B6=E7=A7=BB=E9=99=A4=E8=AE=B0=E5=BF=86?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E8=8A=82=E7=82=B9=EF=BC=8C=E5=85=88=E8=AE=A9?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=B7=A5=E4=BD=9C=E8=B5=B7=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main_graph/utils/main_graph_builder.py | 73 ++++--------------- 1 file changed, 15 insertions(+), 58 deletions(-) diff --git a/backend/app/main_graph/utils/main_graph_builder.py b/backend/app/main_graph/utils/main_graph_builder.py index cf30b01..eb51760 100644 --- a/backend/app/main_graph/utils/main_graph_builder.py +++ b/backend/app/main_graph/utils/main_graph_builder.py @@ -147,18 +147,14 @@ def adapt_old_node_for_new_state(old_node): # ========== 主图构建 ========== def build_react_main_graph(llm=None, tools=None, mem0_client=None) -> StateGraph: """ - 构建整合后的完整主图 + 构建整合后的完整主图(简化版:先让系统工作起来) 完整流程: START ↓ - retrieve_memory (从Mem0检索长期记忆) ← 来自旧图 + init_state (初始化) ↓ - memory_trigger (记忆触发器) ← 来自旧图 - ↓ - init_state (初始化) ← 来自新图 - ↓ - react_reason (推理) ←──────────────────────┐ + react_reason (推理) ←───────────────────────┐ ↓ │ 条件路由 │ ├─ rag_retrieve →─────────────────────────┤ @@ -166,21 +162,17 @@ def build_react_main_graph(llm=None, tools=None, mem0_client=None) -> StateGraph ├─ dictionary_subgraph →──────────────────┤ ├─ news_analysis_subgraph →───────────────┤ ├─ web_search →───────────────────────────┤ - ├─ handle_error → (重试或结束) ───────────┤ + ├─ handle_error → (重试或结束) ────────────┤ └─ llm_call (大模型调用) ←────────────────┘ ↓ - 检查:需要总结? - ├─ 是 → summarize (提交给Mem0存储) ← 来自旧图 - └─ 否 → (跳过) - ↓ - finalize (发送完成事件) ← 来自旧图 + finalize (发送完成事件) ↓ END """ # 创建图 graph = StateGraph(MainGraphState) - # 设置全局 mem0_client + # 设置全局 mem0_client (暂时不用记忆功能) if mem0_client: set_global_mem0_client(mem0_client) @@ -189,20 +181,8 @@ def build_react_main_graph(llm=None, tools=None, mem0_client=None) -> StateGraph if llm is not None: llm_node = create_llm_call_node(llm, tools or []) - retrieve_memory_node = None - summarize_node = None - if mem0_client: - retrieve_memory_node = create_retrieve_memory_node(mem0_client) - summarize_node = create_summarize_node(mem0_client) - # ========== 添加节点 ========== - - # 第一阶段:记忆检索(来自旧图) - if retrieve_memory_node: - graph.add_node("retrieve_memory", adapt_old_node_for_new_state(retrieve_memory_node)) - graph.add_node("memory_trigger", memory_trigger_node) - - # 第二阶段:React 循环推理(来自新图) + # 简化:先不用记忆检索相关节点 graph.add_node("init_state", init_state_node) graph.add_node("react_reason", react_reason_node) graph.add_node("rag_retrieve", rag_retrieve_node) @@ -230,25 +210,15 @@ def build_react_main_graph(llm=None, tools=None, mem0_client=None) -> StateGraph wrap_subgraph_for_error_handling(news_analysis_graph.compile(), "news_analysis") ) - # 第三阶段:完成处理(来自旧图) - if summarize_node: - graph.add_node("summarize", adapt_old_node_for_new_state(summarize_node)) + # 完成节点 graph.add_node("finalize", finalize_node) # ========== 添加边 ========== - - # 第一阶段:记忆检索 - if retrieve_memory_node: - graph.add_edge(START, "retrieve_memory") - graph.add_edge("retrieve_memory", "memory_trigger") - else: - graph.add_edge(START, "memory_trigger") - - # 进入第二阶段 - graph.add_edge("memory_trigger", "init_state") + # 简化:直接从 START 到 init_state + graph.add_edge(START, "init_state") graph.add_edge("init_state", "react_reason") - # 第二阶段:React 循环推理 + # 条件路由 graph.add_conditional_edges( "react_reason", route_by_reasoning, @@ -263,7 +233,7 @@ def build_react_main_graph(llm=None, tools=None, mem0_client=None) -> StateGraph } ) - # 循环边:检索/搜索/子图/错误处理后 → 回到推理 + # 循环边 graph.add_edge("rag_retrieve", "react_reason") graph.add_edge("web_search", "react_reason") graph.add_edge("contact_subgraph", "react_reason") @@ -271,27 +241,14 @@ def build_react_main_graph(llm=None, tools=None, mem0_client=None) -> StateGraph graph.add_edge("news_analysis_subgraph", "react_reason") graph.add_edge("handle_error", "react_reason") - # 第三阶段:llm_call 后进入完成处理 + # llm_call 之后直接到 finalize if llm_node is not None: - if summarize_node: - # 检查是否需要总结 - graph.add_conditional_edges( - "llm_call", - should_summarize, - { - "summarize": "summarize", - "finalize": "finalize" - } - ) - graph.add_edge("summarize", "finalize") - else: - # 没有 summarize 节点,直接 finalize - graph.add_edge("llm_call", "finalize") + graph.add_edge("llm_call", "finalize") # 完成 graph.add_edge("finalize", END) - info("✅ [图构建] 整合后的完整主图构建完成") + info("✅ [图构建] 整合后的完整主图构建完成(简化版)") return graph