Introduzione ad Agentic RAG

Agenti AI con Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agentic RAG: Recupero Iterativo + Ragionamento

Agenti AI con Hugging Face smolagents

Strumenti Senza Stato vs. Con Stato in smolagents

Strumenti Funzione (@tool decorator)

  • Senza stato: nessuna memoria tra le chiamate
  • Non può ricordare il tuo archivio vettoriale tra le chiamate

Strumenti Basati su Classe (Tool subclass)

  • Con stato: mantiene riferimenti tra le chiamate
  • Memorizza oggetti complessi
Agenti AI con Hugging Face smolagents

L'Anatomia di uno Strumento Basato su Classe

from smolagents import Tool

class ToolName(Tool):
    name = "tool_name"

description = "Descrizione chiara per l'agente"
inputs = { "parameter_name": {"type": "parameter_type", "description": "Scopo del parametro"} } output_type = "string"
def __init__(self, custom_parameters): super().__init__() self.custom_attribute = custom_parameters
def forward(self, parameter_name): # L'agente chiama questo metodo return "output elaborato"
Agenti AI con Hugging Face smolagents

Costruisci uno Strumento di Ricerca Ricette

class RecipeSearchTool(Tool):
    name = "recipe_search" 
    description = "Cerca documentazione culinaria per ricette, tecniche e informazioni sulla pianificazione dei pasti"
    inputs = {
        "query": {"type": "string", "description": "Query culinaria in linguaggio naturale"}
    }
    output_type = "string"

def __init__(self, vectorstore, k=6): super().__init__() self.vectorstore = vectorstore self.k = k
def forward(self, query): docs = self.vectorstore.similarity_search(query, k=self.k) return "\n\n".join(doc.page_content for doc in docs) or "Niente trovato."
Agenti AI con Hugging Face smolagents

Agente Assistente di Cucina: Mettiamo Tutto Insieme

# Inizializza lo strumento di ricerca
recipe_search = RecipeSearchTool(vector_store)

agent = CodeAgent(
    tools=[recipe_search],
    model=model,
    instructions="Cerca a fondo per fornire risposte complete alle ricette. 
      Se i risultati iniziali sembrano incompleti, prova termini di ricerca diversi.",
    verbosity_level=1,
    max_steps=8
)
Agenti AI con Hugging Face smolagents

Esempio di Esecuzione Agente

Query: Come cucino il salmone con erbe usando tecniche professionali?

[Passo 1] Cerca "tecniche di cottura salmone erbe"...

[Passo 2] Cerca "preparazione professionale salmone"...

[Risposta Finale]

"Asciuga i filetti, condisci con erbe, e:

  • Rosola in padella dal lato della pelle, irrorando con burro, aglio, timo
  • Oppure cuoci al forno a 200°C con burro alle erbe e limone per 10-12 min"
Agenti AI con Hugging Face smolagents

Ayo berlatih!

Agenti AI con Hugging Face smolagents

Preparing Video For Download...