LangGraph 是 LangChain 中的工作流引擎,为什么 LangChain 需要创建工作流,这还是由于大语言模型的应用特点。大语言模型本身不具备业务功能,大语言只能根据提示词进行处理并返回,通常一组对话无法完成一个复杂的任务,需要一步一步的进行处理,根据大语言模型的返回,应用会根据返回做对应的处理,并通过复杂的多轮交互完成一个复杂的任务。Graph 就可以理解为状态机,我们先简单创建一个Graph。
创一个 Graph
一个图中主要包括三个概念,状态、节点和链接边。Graph 有两个特别的节点,START 和 END,START 为开始节点、END 结束节点,Graph可以理解为流程,有开始和结束节点。状态(State)是在每个节点之间进行传递的对象,State 需要进行自定义,是一个普通的 Python 对象,State 有一些预定义的方法,包括 add 和 add_message,add 是添加数据到 List 中,add_messages 是特别为 LLM Messages 用的,
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
fr