
LangGraphLLMAI
🧬 LangGraph教程(一):从零开始构建你的第一个AI聊天机器人
2025-09-04
2025-09-04
2 min read
本文是 《LangGraph入门全解》https://www.wileyzhang.com/posts/264605ee-e889-806e-b847-ce4e7bcba614 系列的第一篇。在这篇文章中,我们将构建一个聊天机器人。如果出你是新手,建议先阅读主指南以了解LangGraph的全貌。
基于LangGraph开发一个聊天bot
bot Agent 代码
from typing import Annotated from typing_extensions import TypedDict from langchain_openai import ChatOpenAI from langgraph.graph import StateGraph, START, END from langgraph.graph.message import add_messages from pydantic import SecretStr # 此处定义你自己的模型 llm = ChatOpenAI(base_url="http://127.0.0.1:8000/v1", api_key=SecretStr("123123"), model="qwen3_32") # 定义图状态 class State(TypedDict): messages: Annotated[list, add_messages] # 此处维护完整的消息历史 graph = StateGraph(State) def chatbot(state: State): return {"messages": [llm.invoke(state["messages"])]} graph.add_node("chatbot", chatbot) graph.add_edge(START, "chatbot") graph.add_edge("chatbot", END) app = graph.compile() if __name__ == "__main__": messages = [] while True: user_input = input("👨💻: ") if user_input.lower() in ["quit", "exit", "q"]: print("Exiting...") break messages.append({"role": "user", "content": user_input}) response = app.invoke({"messages": messages}) messages = response["messages"] print(f'🤖: {response["messages"][-1].content}')
查看bot图结构
使用下面的代码,保存图结构,此代码会反复用到
from PIL import Image import io png_data = app.get_graph(xray=True).draw_mermaid_png() img_io = io.BytesIO(png_data) # 使用PIL的Image打开BytesIO对象 image = Image.open(img_io) # 指定保存的本地文件路径 save_path = 'local_image.png' # 保存图像到本地 image.save(save_path)