Побудова графів для чат-ботів

Проєктування агентних систем з LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Чат-боти з LangGraph

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

 

  • Користувацькі агенти з LangGraph

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

Графи та стани агента

Іконка LangGraph

   

Стан графа

  • Організовує різні завдання
    • Використання інструментів
    • Виклики LLM
  • Порядок завдань = workflow

Стан агента

  • Відстежує прогрес агента
  • Фіксує виконання завдань
Проєктування агентних систем з LangChain

Створення агента з LangGraph

Люди читають, сидячи на великих книгах.

Лупа, що символізує інформацію.

Проєктування агентних систем з LangChain

Вузли та ребра

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

   

Вузли

  • Функції або дії
    • Відповідь
    • Виклик інструменту

Ребра

  • Правила, що з'єднують вузли
Проєктування агентних систем з LangChain

Вузли та ребра

Схема чат-бота з підсвіченим першим ребром.

   

Вузли

  • Завдання або дії
    • Відповідь
    • Виклик інструменту

Ребра

  • Правила, що з'єднують вузли
Проєктування агентних систем з LangChain

Вузли та ребра

Схема чат-бота з підсвіченим другим ребром.

   

Вузли

  • Завдання або дії
    • Відповідь
    • Виклик інструменту

Ребра

  • Правила, що з'єднують вузли
Проєктування агентних систем з LangChain

Вузли та ребра

Підсвічена повна схема чат-бота.

   

Вузли

  • Завдання або дії
    • Відповідь
    • Виклик інструменту

Ребра

  • Правила, що з'єднують вузли

Попередньо створені вузли

Вузли START і END з LangGraph

Проєктування агентних систем з LangChain

Побудова станів графа й агента

# Модулі для структурування тексту
from typing import Annotated
from typing_extensions import TypedDict


# Модулі LangGraph для визначення графів from langgraph.graph import StateGraph, START, END from langgraph.graph.message import add_messages
# Модуль для налаштування OpenAI from langchain_openai import ChatOpenAI
Проєктування агентних систем з LangChain

Побудова станів графа й агента

# Визначте llm
llm = ChatOpenAI(model="gpt-4o-mini", api_key="OPENAI_API_KEY")


# Визначте State class State(TypedDict):
# Визначте messages з метаданими messages: Annotated[list, add_messages]
# Ініціалізуйте StateGraph graph_builder = StateGraph(State)
Проєктування агентних систем з LangChain

Додавання вузлів і ребер

# Визначте функцію чат-бота для відповіді
# за допомогою моделі
def chatbot(state: State):
    return {"messages": 
    [llm.invoke(state["messages"])]}


# Додайте вузол chatbot до графа graph_builder.add_node("chatbot", chatbot)

Вузол чат-бота.

Проєктування агентних систем з LangChain

Додавання вузлів і ребер

# Визначте початок і кінець 
# потоку розмови
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)


# Скомпілюйте граф для підготовки # до виконання graph = graph_builder.compile()

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

Проєктування агентних систем з LangChain

Давайте потренуємось!

Проєктування агентних систем з LangChain

Preparing Video For Download...