Tworzenie grafów dla chatbotów

Projektowanie systemów agentowych z LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Chatboty z LangGraph

Ikona chatbota

 

  • Niestandardowe agenty z LangGraph

     
    • Zarządzanie przepływem pracy
      • Stany grafu
      • Stany agenta
    • Budowa chatbota
      • Węzły
      • Krawędzie
Projektowanie systemów agentowych z LangChain

Grafy i stany agenta

Ikona LangGraph

   

Stan grafu

  • Organizuje różne zadania
    • Użycie narzędzi
    • Wywołania LLM
  • Kolejność zadań = przepływ pracy

Stan agenta

  • Śledzi postęp agenta
  • Rejestruje wykonanie zadań
Projektowanie systemów agentowych z LangChain

Budowanie agenta z LangGraph

Ludzie czytający, siedzący na dużych książkach.

Lupa reprezentująca informacje.

Projektowanie systemów agentowych z LangChain

Węzły i krawędzie

Diagram chatbota.

   

Węzły

  • Funkcje lub akcje
    • Odpowiedź
    • Wywołanie narzędzia

Krawędzie

  • Reguły łączące węzły
Projektowanie systemów agentowych z LangChain

Węzły i krawędzie

Diagram chatbota z wyróżnioną pierwszą krawędzią.

   

Węzły

  • Zadania lub akcje
    • Odpowiedź
    • Wywołanie narzędzia

Krawędzie

  • Reguły łączące węzły
Projektowanie systemów agentowych z LangChain

Węzły i krawędzie

Diagram chatbota z wyróżnioną drugą krawędzią.

   

Węzły

  • Zadania lub akcje
    • Odpowiedź
    • Wywołanie narzędzia

Krawędzie

  • Reguły łączące węzły
Projektowanie systemów agentowych z LangChain

Węzły i krawędzie

Pełny wyróżniony diagram chatbota.

   

Węzły

  • Zadania lub akcje
    • Odpowiedź
    • Wywołanie narzędzia

Krawędzie

  • Reguły łączące węzły

Wbudowane węzły

Węzły START i END z LangGraph

Projektowanie systemów agentowych z LangChain

Budowanie stanów grafu i agenta

# 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
Projektowanie systemów agentowych z LangChain

Budowanie stanów grafu i agenta

# 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)
Projektowanie systemów agentowych z LangChain

Dodawanie węzłów i krawędzi

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

Węzeł chatbota.

Projektowanie systemów agentowych z LangChain

Dodawanie węzłów i krawędzi

# 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 chatbota.

Projektowanie systemów agentowych z LangChain

Czas na ćwiczenia!

Projektowanie systemów agentowych z LangChain

Preparing Video For Download...