Definire più strumenti

Progettare sistemi agentici con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Integrare più strumenti

Un bot con più strumenti

   

  • Aggiungi più strumenti personalizzati

  • Automatizza la scelta dello strumento per query

Progettare sistemi agentici con LangChain

Potenziare un chatbot educativo

Persone che leggono, sedute su grandi libri.

 

  • Cerca eventi storici

  • Controlla i palindromi:

     
    • level = level

    • top spot = tops pot

Progettare sistemi agentici con LangChain

Più modi per creare strumenti

 

  • Richiama l'LLM

    Cerca date storiche con input in linguaggio naturale, es. "5th of November"
      Agent: The 5th of November is famous for the Gunpowder treason and 
      plot...
    
  • Codice Python

    Trova palindromi confrontando direttamente le stringhe, es. string == string[::-1]
      Agent: Yes, "madam" is a palindrome...
    
Progettare sistemi agentici con LangChain

Strumento per eventi storici

# Usa un decorator per etichettare lo strumento e impostare l'input come stringa
@tool

def date_checker(date: str) -> str:
"""Fornisci un elenco di importanti eventi storici per una data data in qualsiasi formato."""
try: # Richiama l'LLM per interpretare la data e generare eventi storici answer = llm.invoke(f"List important historical events that occurred on {date}.")
# Restituisci la risposta return answer.content
# Gestisci eccezioni per errori nel recupero except Exception as e: return f"Error retrieving events: {str(e)}"
Progettare sistemi agentici con LangChain

Strumento per palindromi

@tool

# Imposta l'input come stringa def check_palindrome(text: str):
"""Verifica se una parola o frase è un palindromo."""
# Rimuovi i caratteri non alfanumerici e converti in minuscolo cleaned = ''.join(char.lower() for char in text if char.isalnum())
# Controlla se il testo invertito coincide con l'originale if cleaned == cleaned[::-1]: return f"The phrase or word '{text}' is a palindrome." else: return f"The phrase or word '{text}' is not a palindrome."
Progettare sistemi agentici con LangChain

Collegare più strumenti

# Importa i moduli necessari per definire i nodi degli strumenti
from langgraph.prebuilt import ToolNode


# Elenco degli strumenti tools = [wikipedia_tool, date_checker, check_palindrome]
# Passa gli strumenti a ToolNode() tool_node = ToolNode(tools)
# Collega gli strumenti all'LLM model_with_tools = llm.bind_tools(tools)
Progettare sistemi agentici con LangChain

Esercitiamoci!

Progettare sistemi agentici con LangChain

Preparing Video For Download...