AI创想

标题: LangGraph 父子图模式详解 [打印本页]

作者: AI小编    时间: 昨天 23:35
标题: LangGraph 父子图模式详解
作者:CSDN博客
LangGraph 父子图模式详解

概述

在LangGraph中,父子图模式是一种强大的架构模式,允许构建复杂的、模块化的图结构。当父图和子图具有不同的状态模式时,这种模式特别有用。
基本概念

父图与子图

状态模式差异
  1. # 子图的状态模式 - 使用自定义的TypedDictclassSubgraphMessagesState(TypedDict):
  2.     subgraph_messages: Annotated[list[AnyMessage], add_messages]# 父图的状态模式 - 使用MessagesStateclassParentState(MessagesState):pass
复制代码
完整示例

1. 导入必要的模块
  1. from typing_extensions import TypedDict, Annotated
  2. from langchain_core.messages import AnyMessage
  3. from langgraph.graph import StateGraph, MessagesState, START
  4. from langgraph.graph.message import add_messages
  5. from langchain.chat_models import init_chat_model
  6. import os
  7. from dotenv import load_dotenv
  8. # 加载环境变量
  9. load_dotenv()
  10. model = init_chat_model("deepseek-chat",
  11.     api_key=os.environ.get("DEEPSEEK_API_KEY"))
复制代码
2. 定义子图
  1. # 子图的状态模式classSubgraphMessagesState(TypedDict):
  2.     subgraph_messages: Annotated[list[AnyMessage], add_messages]# 子图的处理函数defcall_model(state: SubgraphMessagesState):print("=== 子图被调用 ===")print(f"子图接收到的消息: {
  3.      
  4.      state['subgraph_messages']}")
  5.     response = model.invoke(state["subgraph_messages"])print(f"子图生成的响应: {
  6.      
  7.      response.content}")return{
  8.    
  9.    "subgraph_messages": response}# 创建子图
  10. subgraph_builder = StateGraph(SubgraphMessagesState)
  11. subgraph_builder.add_node("model_node", call_model)
  12. subgraph_builder.add_edge(START,"model_node")
  13. subgraph = subgraph_builder.compile()
复制代码
3. 定义父图
  1. # 父图的状态模式c
复制代码
原文地址:https://blog.csdn.net/Cheer_RIO/article/details/151192412




欢迎光临 AI创想 (https://www.llms-ai.com/) Powered by Discuz! X3.4