Tvorba grafů pro chatboty

Návrh agentních systémů s LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Chatboty s LangGraph

Obrázek chatbotu

 

  • Vlastní agenti s LangGraph

     
    • Správa workflow
      • Stavy grafů
      • Stavy agentů
    • Tvorba chatbotu
      • Uzly
      • Hrany
Návrh agentních systémů s LangChain

Grafy a stavy agentů

Ikona LangGraph

   

Stav grafu

  • Organizuje různé úkoly
    • Použití nástrojů
    • Volání LLM
  • Pořadí úkolů = workflow

Stav agenta

  • Sleduje postup agenta
  • Zaznamenává dokončení úkolů
Návrh agentních systémů s LangChain

Tvorba agenta s LangGraph

Lidé čtou, sedí na velkých knihách.

Lupa symbolizující informace.

Návrh agentních systémů s LangChain

Uzly a hrany

Diagram chatbotu.

   

Uzly

  • Funkce nebo akce
    • Odpověď
    • Volání nástroje

Hrany

  • Pravidla propojující uzly
Návrh agentních systémů s LangChain

Uzly a hrany

Diagram chatbotu se zvýrazněnou první hranou.

   

Uzly

  • Úkoly nebo akce
    • Odpověď
    • Volání nástroje

Hrany

  • Pravidla propojující uzly
Návrh agentních systémů s LangChain

Uzly a hrany

Diagram chatbotu se zvýrazněnou druhou hranou.

   

Uzly

  • Úkoly nebo akce
    • Odpověď
    • Volání nástroje

Hrany

  • Pravidla propojující uzly
Návrh agentních systémů s LangChain

Uzly a hrany

Plně zvýrazněný diagram chatbotu.

   

Uzly

  • Úkoly nebo akce
    • Odpověď
    • Volání nástroje

Hrany

  • Pravidla propojující uzly

Předpřipravené uzly

Uzly START a END z LangGraph

Návrh agentních systémů s LangChain

Tvorba grafů a stavů agentů

# 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
Návrh agentních systémů s LangChain

Tvorba grafů a stavů agentů

# 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)
Návrh agentních systémů s LangChain

Přidávání uzlů a hran

# 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)

Uzel chatbotu.

Návrh agentních systémů s LangChain

Přidávání uzlů a hran

# 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()

Diagram chatbotu.

Návrh agentních systémů s LangChain

Pojďme si procvičit!

Návrh agentních systémů s LangChain

Preparing Video For Download...