LangGraph实战教程(1)- 从零开始认识LangGraph

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

langGraph介绍

LangGraph 是一个由 LangChain 团队开发的库,用于构建复杂、有状态的应用程序,特别是那些需要循环和条件控制的 AI 工作流。它扩展了 LangChain 的核心功能,提供了更灵活的图形化编程模型。

核心概念

1.状态图(StateGraph): LangGraph 的核心数据结构,表示应用程序的不同状态和它们之间的转换。

2.节点(Nodes): 执行特定功能的函数,可以是:

  • 工具调用
  • 语言模型调用
  • 自定义函数

3.边(Edges): 定义节点之间的条件转换路径。

主要优势

  1. 可靠性和可控性。通过适度检查和人在循环审批来引导智能体操作。LangGraph为长时间运行的工作流持久化上下文,使智能体保持在正确的方向上。
  2. 低级和可扩展。使用完全描述性的低级原语构建自定义智能体,而不受限制自定义的严格抽象的影响。设计可伸缩的多智能体系统,每个智能体都为您的用例定制一个特定的角色。
  3. 优秀的流输出支持。通过逐个令牌的流和中间步骤的流,LangGraph为用户提供了对智能体的清晰可见性

使用langGraph搭建聊天机器人

python 复制代码
from typing import Annotated
from langchain_openai import ChatOpenAI
from typing_extensions import TypedDict
from langgraph.graph import StateGraph,START,END
from langgraph.graph.message import add_messages
from dotenv import load_dotenv
load_dotenv()
# 第一步: 创建StateGraph对象,StateGraph对象定义聊天机器人的消息状态结构,相当于上下文
class State(TypedDict):
messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)
# 大模型api,这里主要使用阿里百炼的api,使用openAI的客户端进行调用,故需要在环境变量配置OPENAI_API_KEY=百炼key
llm = ChatOpenAI(model="qwen-max-latest", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
def chatbot(state: State):
return {"messages": [llm.invoke(state["messages"])]}
# 第二步: 添加node节点
graph_builder.add_node("chatbot", chatbot)
# 第三步:定义流程入口和连线
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END
# 第四步:编译graph
graph = graph_builder.compile()
# from IPython.display import Image, display
# 第五步:显示可视化图形
# try:
#     display(Image(graph.get_graph().draw_mermaid_png()))
# except Exception:
#     # This requires some extra dependencies and is optional
#     print("Mermaid graph visualization requires some extra dependencies.")
#     print("Please install the optional dependency `mermaid` to see the graph.")
# 第六步:执行流程
def stream_graph_updates(user_input: str):
for event in graph.stream({"messages": [{"role": "user", "content": user_input}]}):
for value in event.values():
print("Assistant:", value["messages"][-1].content)
while True:
try:
user_input = input("User: ")
if user_input.lower() in ["quit", "exit", "q"]:
print("Goodbye!")
break
stream_graph_updates(user_input)
except:
# fallback if input() is not available
user_input = "What do you know about LangGraph?"
print("User: " + user_input)
stream_graph_updates(user_input)
break

使用langGraph快速搭建一个langGraph流程主要有以下步骤:

第一步: 创建StateGraph对象,StateGraph对象定义聊天机器人的消息状态结构,相当于上下文

第二步: 添加node节点

第三步:定义流程入口和连线

第五步:显示可视化图形(可选)

这里编译后流程图形如下:

第六步:执行流程

vbnet 复制代码
User: hi
Assistant: Hello! How can I assist you today? 😊
User: what is langGraph?
Assistant: **LangGraph** is a framework designed to simplify the creation and management of complex, stateful applications that involve large language models (LLMs). It builds on top of **LangChain**, a popular library for working with LLMs, and extends its capabilities by introducing **state management**, **multi-agent workflows**, and **graph-based execution**. LangGraph allows developers to build more sophisticated, multi-step workflows where multiple agents or components interact in a coordinated manner.

LangGraph 和 LangChain 的区别

1. 核心设计理念

LangChain:

基于"链"(Chain)的概念构建

主要采用线性执行流程

设计用于顺序的、无状态的AI应用

LangGraph:

基于"图"(Graph)的概念构建

支持复杂的、有状态的工作流

专门设计用于需要循环和条件分支的应用

2. 执行模型

LangChain:

线性执行:A → B → C

有限的循环能力(需要额外配置)

主要通过SequentialChain实现简单流程

LangGraph:

图结构执行:支持任意拓扑

原生支持循环和条件分支

可以表示更复杂的控制流

3. 状态管理

LangChain:

主要是无状态的

信息通过链传递

需要显式管理中间结果

LangGraph:

内置状态管理

自动维护和更新状态对象

简化了多步骤交互中的状态跟踪

4. 适用场景

LangChain 更适合:

简单的问答系统

文档处理流水线

不需要复杂控制流的应用

LangGraph 更适合:

自主代理(Autonomous Agents)

多轮对话系统

需要反馈循环的应用

复杂决策系统

声明:本文的示例代码基于langGraph官网样例进行修改

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

相关推荐
johnny2339 分钟前
多智能体协作:Edict、Open Multi-Agent、Agora
agent
强殖装甲凯普20 分钟前
我把「3小时播客变成可搜索文本」做成了 Claude Code 的一条命令
llm·skill·播客·claude code
lbb 小魔仙32 分钟前
Python + LangChain 环境搭建完全指南:从零构建本地 RAG 知识库(附 Ollama 本地模型集成)
开发语言·python·langchain
风落无尘40 分钟前
我用 LangChain 写了一个带“定速巡航”的向量化工具,发布到 PyPI 了!
人工智能·python·langchain
Baihai IDP1 小时前
为什么 AI Agent 重新爱上了文件系统(Filesystems)
人工智能·ai·llm·agi
后端小肥肠1 小时前
白嫖小云雀 API 200 秒免费额度,封装 Skill,玩转 Seedance2.0 视频
人工智能·agent
BU摆烂会噶1 小时前
【LangGraph】 流式处理入门
人工智能·python·langchain·人机交互
大模型真好玩1 小时前
LangChain DeepAgents 速通指南(八)—— DeepAgents流式输出详解
人工智能·langchain·agent
沪漂阿龙2 小时前
AI Agent爆火,但你真的懂LangChain吗?——大模型智能体开发完全指南
人工智能·langchain
雪碧聊技术2 小时前
一文讲透AI大模型相关的专业名词
llm·token