Un RAG charge des documents, les découpe en unités indexables, récupère les passages pertinents puis demande à un modèle de synthétiser une réponse. Commencez avec quelques fichiers dont vous connaissez le contenu.
Installer et préparer les données
pip install -U llama-index
mkdir dataPlacez des fichiers texte dans data/. Configurez ensuite le fournisseur de modèle et d’embeddings selon les variables d’environnement documentées par l’intégration choisie.
Construire l’index
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents, show_progress=True)
query_engine = index.as_query_engine(similarity_top_k=3)
response = query_engine.query("Quel est le point principal des documents ?")
print(response)
for source in response.source_nodes:
print(source.score, source.node.metadata)Document représente une source chargée. Lors de l’indexation, LlamaIndex la transforme en Node avec texte, métadonnées et relations. Le VectorStoreIndex utilise des embeddings pour retrouver les nodes proches de la question.
Persister et mettre à jour
L’index en mémoire convient à l’apprentissage. Pour une application, choisissez un vector store persistant, fixez le modèle d’embeddings et conservez l’identifiant des documents. Réindexez seulement les sources modifiées et définissez une stratégie de suppression.
Évaluer
Créez des questions avec passages attendus et réponses de référence. Mesurez d’abord la récupération : les bons passages apparaissent-ils dans les premiers résultats ? Évaluez ensuite la fidélité de la réponse au contexte. Une réponse fluide avec de mauvaises sources reste un échec.
Affichez les références à l’utilisateur, imposez des limites de taille et protégez les documents sensibles. Le RAG n’accorde pas automatiquement des droits d’accès : filtrez les sources avant la récupération.