Introduction à l'Agentic RAG

Agents IA avec Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Agentic RAG : récupération itérative + raisonnement

Agents IA avec Hugging Face smolagents

Outils sans état vs. avec état dans smolagents

Outils de fonction (décorateur @tool)

  • Sans état : aucune mémoire entre les appels
  • Ne peut pas retenir votre magasin vectoriel entre les appels

Outils basés sur une classe (sous-classe Tool)

  • Avec état : conservent des références entre les appels
  • Peuvent stocker des objets complexes
Agents IA avec Hugging Face smolagents

Anatomie d'un outil basé sur une classe

from smolagents import Tool

class ToolName(Tool):
    name = "tool_name"

description = "Clear description for the agent"
inputs = { "parameter_name": {"type": "parameter_type", "description": "Parameter purpose"} } output_type = "string"
def __init__(self, custom_parameters): super().__init__() self.custom_attribute = custom_parameters
def forward(self, parameter_name): # Agent calls this method return "processed output"
Agents IA avec Hugging Face smolagents

Créer un outil de recherche de recettes

class RecipeSearchTool(Tool):
    name = "recipe_search" 
    description = "Search cooking documentation for recipes, techniques, and meal planning information"
    inputs = {
        "query": {"type": "string", "description": "Natural language cooking query"}
    }
    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 "Nothing found."
Agents IA avec Hugging Face smolagents

Agent d'aide culinaire : tout assembler

# Initialize the retrieval tool
recipe_search = RecipeSearchTool(vector_store)

agent = CodeAgent(
    tools=[recipe_search],
    model=model,
    instructions="Search thoroughly to provide complete recipe answers. 
      If initial results seem incomplete, try different search terms.",
    verbosity_level=1,
    max_steps=8
)
Agents IA avec Hugging Face smolagents

Exemple d'exécution d'agent

Requête : comment cuire le saumon aux fines herbes avec des techniques professionnelles ?

[Étape 1] Recherche « salmon herbs cooking techniques »...

[Étape 2] Recherche « professional salmon preparation »...

[Réponse finale]

« Éponger les filets, assaisonner d'herbes, puis : »

  • Saisir côté peau, arroser de beurre, ail, thym
  • Ou cuire au four à 200 °C avec beurre citronné aux herbes pendant 10 à 12 min »
Agents IA avec Hugging Face smolagents

Passons à la pratique !

Agents IA avec Hugging Face smolagents

Preparing Video For Download...