Créer des graphes pour les clavardoirs

Concevoir des systèmes agentiques avec LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Clavardoirs avec LangGraph

Tête de clavardoir

 

  • Agents personnalisés avec LangGraph

     
    • Gestion du flux de travail
      • États du graphe
      • États de l'agent
    • Construction d'un clavardoir
      • Nœuds
      • Arêtes
Concevoir des systèmes agentiques avec LangChain

Graphes et états d'agent

Icône LangGraph

   

État du graphe

  • Organise les tâches
    • Utilisation d'outils
    • Appels LLM
  • Ordre des tâches = flux de travail

État de l'agent

  • Suit la progression de l'agent
  • Consigne l'exécution des tâches
Concevoir des systèmes agentiques avec LangChain

Créer un agent avec LangGraph

Personnes lisant, assises sur de gros livres.

Loupe représentant l'information.

Concevoir des systèmes agentiques avec LangChain

Nœuds et arêtes

Schéma d'un clavardoir.

   

Nœuds

  • Fonctions ou actions
    • Réponse
    • Appel d'outil

Arêtes

  • Règles reliant les nœuds
Concevoir des systèmes agentiques avec LangChain

Nœuds et arêtes

Schéma de clavardoir avec la première arête en surbrillance.

   

Nœuds

  • Tâches ou actions
    • Réponse
    • Appel d'outil

Arêtes

  • Règles reliant les nœuds
Concevoir des systèmes agentiques avec LangChain

Nœuds et arêtes

Schéma de clavardoir avec la deuxième arête en surbrillance.

   

Nœuds

  • Tâches ou actions
    • Réponse
    • Appel d'outil

Arêtes

  • Règles reliant les nœuds
Concevoir des systèmes agentiques avec LangChain

Nœuds et arêtes

Schéma complet de clavardoir en surbrillance.

   

Nœuds

  • Tâches ou actions
    • Réponse
    • Appel d'outil

Arêtes

  • Règles reliant les nœuds

Nœuds préconstruits

Nœuds START et END de LangGraph

Concevoir des systèmes agentiques avec LangChain

Créer les états du graphe et de l'agent

# Modules pour structurer le texte
from typing import Annotated
from typing_extensions import TypedDict


# Modules LangGraph pour définir des graphes from langgraph.graph import StateGraph, START, END from langgraph.graph.message import add_messages
# Module pour configurer OpenAI from langchain_openai import ChatOpenAI
Concevoir des systèmes agentiques avec LangChain

Créer les états du graphe et de l'agent

# Définir le llm
llm = ChatOpenAI(model="gpt-4o-mini", api_key="OPENAI_API_KEY")


# Définir l'état class State(TypedDict):
# Définir des messages avec métadonnées messages: Annotated[list, add_messages]
# Initialiser StateGraph graph_builder = StateGraph(State)
Concevoir des systèmes agentiques avec LangChain

Ajouter des nœuds et des arêtes

# Définir la fonction du clavardoir pour répondre
# avec le modèle
def chatbot(state: State):
    return {"messages": 
    [llm.invoke(state["messages"])]}


# Ajouter le nœud du clavardoir au graphe graph_builder.add_node("chatbot", chatbot)

Nœud de clavardoir.

Concevoir des systèmes agentiques avec LangChain

Ajouter des nœuds et des arêtes

# Définir le début et la fin du 
# flux de conversation
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)


# Compiler le graphe pour le # préparer à l'exécution graph = graph_builder.compile()

Schéma de clavardoir.

Concevoir des systèmes agentiques avec LangChain

Passons à la pratique !

Concevoir des systèmes agentiques avec LangChain

Preparing Video For Download...