Tutoriel

Statut éditorial : En attente de relecture

Construire un RAG avec LlamaIndex

Charger des documents, créer un index vectoriel, inspecter les sources et obtenir une réponse citée avec LlamaIndex.

Classification du contenu

Types

  • RAG et recherche vectorielle
  • Outils

Technologies

Niveau
Intermédiaire
Publié le
12 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
12 novembre 2026

LlamaIndex organise ingestion, index et moteur de requête. Commencez sur un corpus minuscule afin d’observer les nœuds retrouvés avant d’ajouter un stockage externe.

Installer

~~~bash pip install -U llama-index ~~~

Ajoutez les paquets d’intégration du fournisseur choisi et configurez les clés côté serveur.

Charger et indexer

~~~python from llama_index.core import SimpleDirectoryReader, VectorStoreIndex

documents = SimpleDirectoryReader('data', recursive=True).load_data() for document in documents: print(document.metadata)

index = VectorStoreIndex.from_documents(documents) ~~~

Conservez fichier, page, titre et niveau d’accès dans metadata. Inspectez le texte extrait, surtout pour PDF et tableaux.

Tester le retriever

~~~python retriever = index.as_retriever(similarity_top_k=4) nodes = retriever.retrieve('Quelle est la politique de remboursement ?') for item in nodes: print(item.score, item.node.metadata, item.node.get_content()[:200]) ~~~

La bonne source doit être présente avant la génération.

Répondre

~~~python engine = index.as_query_engine(similarity_top_k=4) response = engine.query('Quelle est la politique de remboursement ?') print(response) for source in response.source_nodes: print(source.node.metadata, source.score) ~~~

Affichez de vraies citations à partir des métadonnées, pas des références inventées par le modèle.

Évaluer

Préparez questions, sources attendues et cas sans réponse. Mesurez retrieval puis fidélité. Réglez chunking et k sur les erreurs observées.

Production

Utilisez un vector store persistant, versionnez embedding et index, séparez les droits avant retrieval et tracez les nœuds transmis. Réindexez dans une nouvelle collection lors d’un changement de modèle.

FAQ

L’index mémoire survit-il au redémarrage ?

Non sans persistance explicite.

Pourquoi une réponse sans source ?

Vérifiez extraction, métadonnées et que l’interface affiche response.source_nodes.

Construire et interroger un index minimal

~~~bash pip install llama-index llama-index-llms-openai ~~~

~~~python from llama_index.core import ( SimpleDirectoryReader, VectorStoreIndex, Settings, ) from llama_index.llms.openai import OpenAI

Settings.llm = OpenAI(model="gpt-4.1-mini", temperature=0) documents = SimpleDirectoryReader("./documents").load_data() index = VectorStoreIndex.from_documents(documents) engine = index.as_query_engine(similarity_top_k=5)

response = engine.query("Quelle est la politique de remboursement ?") print(response) for node in response.source_nodes: print(node.node.metadata, node.score) ~~~

Ajoutez des métadonnées de source, version et droits dès l’ingestion. Persistez l’index pour éviter une reconstruction à chaque démarrage. Testez aussi une question sans réponse et refusez de générer lorsque les sources sont insuffisantes. Évaluez retrieval et réponse séparément.

Sources utilisées