Définir plusieurs outils

Concevoir des systèmes agentiques avec LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Intégrer plusieurs outils

Un bot avec plusieurs outils

   

  • Ajouter plusieurs outils personnalisés

  • Automatiser la sélection d’outil par requête

Concevoir des systèmes agentiques avec LangChain

Améliorer un chatbot éducatif

Personnes lisant, assises sur de grands livres.

 

  • Rechercher des événements historiques

  • Vérifier les palindromes :

     
    • level = level

    • top spot = tops pot

Concevoir des systèmes agentiques avec LangChain

Plusieurs façons de créer des outils

 

  • Appeler le LLM

    Rechercher des dates historiques en langage naturel, par ex. « 5 novembre »
      Agent: Le 5 novembre est célèbre pour la conspiration des Poudres…
    
  • Code Python

    Trouver des palindromes en comparant directement les chaînes, par ex. string == string[::-1]
      Agent: Oui, « madam » est un palindrome…
    
Concevoir des systèmes agentiques avec LangChain

Outil d’événements historiques

# Utiliser un décorateur pour étiqueter l’outil et définir l’entrée comme chaîne
@tool

def date_checker(date: str) -> str:
"""Fournit une liste d’événements historiques importants pour une date donnée, dans tout format."""
try: # Appeler le LLM pour interpréter la date et générer des événements answer = llm.invoke(f"List important historical events that occurred on {date}.")
# Renvoyer la réponse return answer.content
# Gérer les erreurs de récupération except Exception as e: return f"Erreur lors de la récupération des événements : {str(e)}"
Concevoir des systèmes agentiques avec LangChain

Outil palindrome

@tool

# Définir le format d’entrée comme chaîne def check_palindrome(text: str):
"""Vérifie si un mot ou une phrase est un palindrome."""
# Supprimer les caractères non alphanumériques et passer en minuscules cleaned = ''.join(char.lower() for char in text if char.isalnum())
# Vérifier si l’inversé est identique au texte d’origine if cleaned == cleaned[::-1]: return f"La phrase ou le mot '{text}' est un palindrome." else: return f"La phrase ou le mot '{text}' n’est pas un palindrome."
Concevoir des systèmes agentiques avec LangChain

Lier plusieurs outils

# Importer les modules requis pour définir des nœuds d’outils
from langgraph.prebuilt import ToolNode


# Liste des outils tools = [wikipedia_tool, date_checker, check_palindrome]
# Passer les outils à ToolNode() tool_node = ToolNode(tools)
# Lier les outils au LLM model_with_tools = llm.bind_tools(tools)
Concevoir des systèmes agentiques avec LangChain

Passons à la pratique !

Concevoir des systèmes agentiques avec LangChain

Preparing Video For Download...