← Retour au cours

RAG (Retrieval Augmented Generation)

⏱ 10 min · 🎬 Lecon · 🏆 18 XP
🎬
Vidéo en production
Notre équipe pédagogique tourne actuellement cette leçon avec un·e formateur·rice expert·e. Le contenu textuel ci-dessous est complet et utilisable dès maintenant.

Le problème : LLM ne connaît pas tes docs internes

Claude/GPT n'ont pas accès à tes manuels d'entreprise, contrats, base de connaissances. RAG résout ce problème en injectant les docs pertinents dans le prompt.

Architecture RAG en 5 étapes

  • 1. Ingestion : split tes documents en chunks (paragraphes)
  • 2. Embedding : convertis chaque chunk en vecteur (modèle text-embedding-3 ou voyage-3)
  • 3. Stockage : Pinecone, Weaviate, Chroma, ou Postgres+pgvector
  • 4. Retrieval : pour chaque question, embed la question, trouve les top-5 chunks similaires
  • 5. Generation : envoie LLM(question + top-5 chunks) → réponse contextuelle
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

# 1-3. Ingestion + embedding + storage
vectorstore = Chroma.from_documents(documents=docs, embedding=OpenAIEmbeddings())

# 4. Retrieval
retriever = vectorstore.as_retriever(search_kwargs={'k': 5})

# 5. Generation
rag_chain = ({'context': retriever, 'question': RunnablePassthrough()} | prompt | llm)
response = rag_chain.invoke('Quelle est la politique de remboursement ?')