Digital Spirit
Module 04Agents IABloc 2LangGraph & Agents complexes

Heure 08 / 20 · Heures 6–11

Vector Stores & RAG (Retrieval Augmented Generation)

Objectif — Donner à l'agent accès à une base de connaissances métier.

Théorie
15 min
Pratique
45 min

Objectif : Donner à l'agent accès à une base de connaissances métier.

Théorie (15 min) :

  • RAG = Avant de répondre, chercher dans une base de documents les passages pertinents → Les injecter dans le prompt
  • Cas d'usage : Agent qui répond aux questions sur les produits/services d'un client
  • Stack : ChromaDB (local, gratuit) ou Pinecone (cloud) pour stocker les embeddings

Pratique (45 min) :

from langchain_chroma import Chroma
from langchain_anthropic import AnthropicEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import TextLoader

# Charger et indexer les documents
loader = TextLoader("base_connaissance_client.txt")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)

vectordb = Chroma.from_documents(
    documents=chunks,
    embedding=AnthropicEmbeddings(),
    persist_directory="./chroma_db"
)

# Créer un retriever
retriever = vectordb.as_retriever(search_kwargs={"k": 3})
  • Indexer un document de 5 pages (process métier fictif)
  • Tester des questions : L'agent doit chercher dans la base avant de répondre
  • Mesurer la qualité des réponses avec vs sans RAG
  • Cas client : Charger le manuel d'utilisation du logiciel client → Agent de support

Checkpoint : Tu implémente du RAG pour enrichir un agent avec des connaissances métier.