分享
LangGraph 基础入门与 Agent 开发实战
输入“/”快速插入内容
LangGraph 基础入门与 Agent 开发实战
课程说明:
•
体验课内容节选⾃
《2025大模型Agent智能体开发实战》
完整版付费课程
体验课时间有限,若想深度学习⼤模型技术,欢迎⼤家报名由我主讲的
《2025大模型Agent智能体开发实战》
:
51%
49%
此外,公开课
全部课件,以及项目代码、数据等学习资料
,扫码⬆️联系助教即可领取~
《2025大模型智能体Agent开发实战》体验课
LangChain AI+ DeepSeek v3 企业 Agent 开发实战
Part 2. LangGraph 基础入门与 Agent 开发实战
1. LangGraph 接入 DeepSeek v3 模型
LangGraph
中的
StateGraph
类,这个类允许我们创建图,其节点通过读取和写入共享状态进行通信。
StateGraph
类由开发者定义的
State
对象进行参数化,该对象表示图中的节点将通过其进行通信的共享数据结构。
代码块
Python
from typing import Annotated
from langgraph.graph import StateGraph
from typing_extensions import TypedDict
from langgraph.graph.message import add_messages
class State(TypedDict):
messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)
定义模型实例,这里使用
DeepSeek v3
模型。
代码块
Python
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="deepseek-chat",
api_key='sk-98f37d04e1374105b31cb994ae0c9c96',
base_url='https://api.deepseek.com')
定义大模型对话节点。
代码块
Python
def chatbot(state: State):
# print(state)
return {"messages": [model.invoke(state["messages"])]}
添加节点并编译图。同样,我们先看普通边。如果直接想从节点
A
到节点
B
,可以直接使用
add_edge
方法。注意:
LangGraph
有两个特殊的节点:
START
和
END
。
START
表示将用户输入发送到图的节点。使用该节点的主要目的是确定应该首先调用哪些节点。
END
节点是代表终端节点的特殊节点。当想要指示哪些边完成后没有任何操作时,将使用该节点。因此,一个完整的图就可以使用如下代码进行定义:
代码块
Python
from langgraph.graph import START, END
# 添加自定义节点
graph_builder.add_node("chatbot", chatbot)
# 构建边
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)
# 编译图
graph = graph_builder.compile()
LangGraph
还提供了多种内置的图形可视化方法,能够将任何
Graph
以图形的形式展示出来,帮助我们更好地理解节点之间的关系和流程的动态变化。
可视化最大的好处是:直接从代码中生成图形化的表示,可以检查图的执行逻辑是否符合构建的预期。
LangGraph
提供的三种图形可视化方法如下:
•
Mermaid.Ink
:一个开源服务,可以根据 Mermaid 代码生成图表的 URL。它通过 API 提供多种输出格式,包括 PNG、JPEG、SVG 和 PDF,并可以自定义尺寸、主题和背景颜色等选项。开源仓库👉:
mermaid
•
Mermaid + Pyppeteer
:使用 Mermaid 结合 Pyppeteer 的主要区别在于如何将 Mermaid 图表转换成图像或其他格式。Mermaid 本身是一个轻量级的工具,用于通过文本描述生成图表的图形表示。而 Pyppeteer 是一个 Python 库,它提供了一个接口来控制 Chrome,自动打开包含 Mermaid 图表的网页,然后通过浏览器自动截图功能捕获这些图表,生成图像文件。