Создание графов для чат-ботов

Проектирование агентных систем с LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Чат-боты с LangGraph

Голова чат-бота

 

  • Пользовательские агенты с LangGraph

     
    • Управление рабочим процессом
      • Состояния графов
      • Состояния агентов
    • Создание чат-бота
      • Узлы
      • Рёбра
Проектирование агентных систем с LangChain

Графы и состояния агентов

Иконка LangGraph

   

Состояние графа

  • Организует различные задачи
    • Использование инструментов
    • Вызовы LLM
  • Порядок задач = рабочий процесс

Состояние агента

  • Отслеживает прогресс агента
  • Фиксирует выполнение задач
Проектирование агентных систем с LangChain

Создание агента с LangGraph

Люди читают, сидя на больших книгах.

Лупа как символ информации.

Проектирование агентных систем с LangChain

Узлы и рёбра

Схема чат-бота.

   

Узлы

  • Функции или действия
    • Ответ
    • Вызов инструмента

Рёбра

  • Правила соединения узлов
Проектирование агентных систем с LangChain

Узлы и рёбра

Схема чат-бота с выделенным первым ребром.

   

Узлы

  • Задачи или действия
    • Ответ
    • Вызов инструмента

Рёбра

  • Правила соединения узлов
Проектирование агентных систем с LangChain

Узлы и рёбра

Схема чат-бота с выделенным вторым ребром.

   

Узлы

  • Задачи или действия
    • Ответ
    • Вызов инструмента

Рёбра

  • Правила соединения узлов
Проектирование агентных систем с LangChain

Узлы и рёбра

Полная выделенная схема чат-бота.

   

Узлы

  • Задачи или действия
    • Ответ
    • Вызов инструмента

Рёбра

  • Правила соединения узлов

Встроенные узлы

Узлы START и END из LangGraph

Проектирование агентных систем с LangChain

Создание графа и состояний агента

# 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

Создание графа и состояний агента

# 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

Добавление узлов и рёбер

# 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

Добавление узлов и рёбер

# 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

Давайте потренируемся!

Проектирование агентных систем с LangChain

Preparing Video For Download...