为聊天机器人构建图

使用 LangChain 设计 Agentic 系统

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

使用 LangGraph 构建聊天机器人

聊天机器人头像

 

  • 使用 LangGraph 构建自定义代理

     
    • 流程管理
      • 图状态
      • 代理状态
    • 聊天机器人构建
      • 节点
使用 LangChain 设计 Agentic 系统

图与代理状态

LangGraph 图标

   

图状态

  • 组织不同任务
    • 工具使用
    • LLM 调用
  • 任务顺序 = 工作流

代理状态

  • 跟踪代理进度
  • 记录任务完成
使用 LangChain 设计 Agentic 系统

用 LangGraph 构建代理

人们坐在大书上阅读。

放大镜代表信息。

使用 LangChain 设计 Agentic 系统

节点与边

聊天机器人示意图。

   

节点

  • 函数或动作
    • 响应
    • 工具调用

  • 连接节点的规则
使用 LangChain 设计 Agentic 系统

节点与边

突出显示第一条边的聊天机器人示意图。

   

节点

  • 任务或动作
    • 响应
    • 工具调用

  • 连接节点的规则
使用 LangChain 设计 Agentic 系统

节点与边

突出显示第二条边的聊天机器人示意图。

   

节点

  • 任务或动作
    • 响应
    • 工具调用

  • 连接节点的规则
使用 LangChain 设计 Agentic 系统

节点与边

突出显示完整聊天机器人图。

   

节点

  • 任务或动作
    • 响应
    • 工具调用

  • 连接节点的规则

预置节点

来自 LangGraph 的 STARTEND 节点

使用 LangChain 设计 Agentic 系统

构建图与代理状态

# Modules for structuring text
from typing import Annotated
from typing_extensions import TypedDict


# LangGraph modules for defining graphs from langgraph.graph import StateGraph, START, END from langgraph.graph.message import add_messages
# Module for setting up OpenAI from langchain_openai import ChatOpenAI
使用 LangChain 设计 Agentic 系统

构建图与代理状态

# Define the llm
llm = ChatOpenAI(model="gpt-4o-mini", api_key="OPENAI_API_KEY")


# Define the State class State(TypedDict):
# Define messages with metadata messages: Annotated[list, add_messages]
# Initialize StateGraph graph_builder = StateGraph(State)
使用 LangChain 设计 Agentic 系统

添加节点与边

# Define chatbot function to respond
# with the model
def chatbot(state: State):
    return {"messages": 
    [llm.invoke(state["messages"])]}


# Add chatbot node to the graph graph_builder.add_node("chatbot", chatbot)

聊天机器人节点。

使用 LangChain 设计 Agentic 系统

添加节点与边

# Define the start and end of the 
# conversation flow
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)


# Compile the graph to prepare for # execution graph = graph_builder.compile()

聊天机器人示意图。

使用 LangChain 设计 Agentic 系统

Passons à la pratique !

使用 LangChain 设计 Agentic 系统

Preparing Video For Download...