Accueil / Articles / Notes pratiques : LlamaIndex RAG : Un guide pratique pour créer des IA plus intelligentes

Notes pratiques : LlamaIndex RAG : Un guide pratique pour créer des IA plus intelligentes

Guide opérationnel des notes pratiques : LlamaIndex RAG – Un guide pratique pour créer des IA plus intelligentes : contrats, vérifications et emplacements de code prêts à l’emploi pour les équipes qui mettent en œuvre ce modèle.

3766 mots

Utilisez ceci comme une version révisée destinée aux opérateurs des idées présentées dans « LlamaIndex RAG : Un guide pratique pour créer des applications d’IA plus intelligentes » : étapes claires, emplacements de code ordonnés et notes de récupération qui survivent au transfert. L’étape « Aperçu » fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un enregistrement exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe de la démonstration aux environnements partagés.

Qu’est-ce que RAG exactement ?

Pour l’étape « What Exactly Is RAG », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les flags fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation.

User
  ↓
Question
  ↓
LLM
  ↓
Answer
User Question
                         ↓
                    Retrieval
                         ↓
                 Relevant Documents
                         ↓
                    LLM Prompt
                         ↓
                       LLM
                         ↓
                      Answer

Où s’insère LlamaIndex

Pour l’étape « Où LlamaIndex s’insère », définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie du produit, et non d’une amélioration ultérieure. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation.

Your Data
                       │
          ┌────────────┼────────────┐
          ↓            ↓            ↓
       PDFs         Websites     Databases
          │            │            │
          └────────────┼────────────┘
                       ↓
                   LlamaIndex
                       ↓
                 Data Ingestion
                       ↓
                    Chunks
                       ↓
                  Embeddings
                       ↓
                 Vector Store
                       ↓
                    Retriever
                       ↓
                   Reranker
                       ↓
                     LLM
                       ↓
                    Answer

Le pipeline RAG de LlamaIndex

Pour l’étape du pipeline The LlamaIndex RAG, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un pipeline embrouillé. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation. Pour l’étape du pipeline The LlamaIndex RAG, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce du coût évite les factures inattendues lorsque le processus passe de la démonstration à l’utilisation partagée.

environnements.

Documents
    ↓
Loading
    ↓
Parsing
    ↓
Chunking
    ↓
Indexing
    ↓
Retrieval
    ↓
Context Selection
    ↓
Generation

1. Charger vos données

Lors de l’étape 1 « Charger vos données », notez d’abord les exigences : entrées requises, signal de succès et conséquences en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les administrateurs peuvent auditer sans devoir lire l’ensemble du système. Évaluez le taux de rappel sur un ensemble fixe de questions avant d’ajuster les prompts. Un changement fréquent des prompts résout rarement un système de récupération insuffisant.

PDFs
Markdown
Web pages
Notion
Google Drive
SQL databases
APIs
CSV files
documents = load_documents("data/")
Offline / ingestion time
        ↓
Prepare the knowledge
Online / query time
        ↓
Retrieve the knowledge

2. Diviser les documents en blocs

Lors de l’étape « Diviser les documents en 2 », notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations apportées ultérieurement. Mesurez le taux de rappel sur un ensemble fixe de questions avant d’ajuster les prompts. Un changement fréquent des prompts ne résout que rarement un système de récupération insuffisant.

Document
   ↓
Chapter
   ↓
Section
   ↓
Paragraph
   ↓
Chunk
chunks = split_document(
    document,
    chunk_size=512,
)
Huge chunk
    ↓
Lots of irrelevant information
    ↓
Large prompt
    ↓
Higher latency
Tiny chunk
    ↓
Missing context
    ↓
Poor retrieval

3. Créer des embeddings

Lors de la réalisation des 3 étapes de création d’embeddings, notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Préférez des unités petites et testables plutôt que des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité et non un processus embrouillé. Mesurez le taux de rappel sur un ensemble de questions fixe avant d’ajuster les prompts. Changer fréquemment les prompts ne résout que rarement un système de récupération insuffisant. Lors de la réalisation des 3 étapes de création d’embeddings, notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Enregistrez les temps d’exécution ainsi que le coût en tokens ou requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le système passe de l’environnement de démonstration à des environnements partagés.

"How can I reset my password?"

"What should I do if I forgot my login credentials?"
Text
 ↓
Embedding Model
 ↓
[0.12, -0.42, 0.81, ...]

4. Stocker les vecteurs

La phase de stockage des vecteurs fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Séparez la politique de segmentation de la politique de récupération. Modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité évoluent.

Document
   ↓
Chunk
   ↓
Embedding
   ↓
Vector Store
Vector Store

ID     Vector        Metadata
--------------------------------
001    [....]        product=api
002    [....]        product=web
003    [....]        product=mobile
document_id
page_number
department
product
version
created_at
tenant_id
access_level

5. Récupérer les informations pertinentes

La phase 5 « Récupérer des informations pertinentes » fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Documentez en même temps le parcours optimal et le parcours de récupération. Les tentatives répétées, les contrôles humains et le traitement des messages non livrés font partie intégrante du produit, et non d’une mise en forme ultérieure. Séparez la politique de segmentation des données de la politique de récupération ; modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité évoluent.

Question
   ↓
Query Embedding
   ↓
Vector Search
Top 5 Results

1. API Authentication Guide
2. OAuth Configuration
3. API Token Documentation
4. Authentication Troubleshooting
5. Security Configuration

6. Transformer les documents récupérés en contexte

La phase des documents récupérés en 6 étapes fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit pointer vers une seule responsabilité plutôt que vers un processus embrouillé. Séparez la politique de segmentation de la politique de récupération. Modifier l’une ne doit pas obliger à réécrire l’autre lorsque les indicateurs de qualité évoluent. La phase des documents récupérés en 6 étapes fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Enregistrez les temps d’exécution ainsi que le coût des tokens ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite des factures inattendues lorsque le processus passe de l’environnement de démonstration aux environnements partagés.

User Question
      +
Retrieved Context
      ↓
Prompt
      ↓
LLM
System:
Answer using the supplied context.

Context:
[Relevant document 1]

[Relevant document 2]

[Relevant document 3]

Question:
How do I configure API authentication?

7. Générer la réponse

Pour l’étape 7 « Générer la réponse », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation.

Question
+
Relevant Context
                  User
                    ↓
                  Query
                    ↓
              Query Embedding
                    ↓
              Vector Retrieval
                    ↓
             Relevant Chunks
                    ↓
             Context Assembly
                    ↓
                   LLM
                    ↓
                 Answer

LlamaIndex, c’est plus que « Recherche vectorielle + LLM »

Pour la phase LlamaIndex Is More Than, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez conjointement le parcours normal et les scénarios de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations ultérieures. Préférez des sorties structurées avec validation de schéma plutôt que du texte libre lorsque l’étape suivante consiste en du code ou une appel à outil.

Query
 ↓
Vector Search
 ↓
Top 5 Documents
 ↓
LLM
                      Query
                         ↓
                  Query Processing
                         ↓
               ┌─────────┴─────────┐
               ↓                   ↓
          Dense Search        Keyword Search
               ↓                   ↓
               └─────────┬─────────┘
                         ↓
                      Fusion
                         ↓
                      Rerank
                         ↓
                  Context Selection
                         ↓
                       LLM

Moteurs de requête : transformer la récupération en système de réponse à des questions

Pour l’étape des moteurs de requête chargés du récupération, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation. Pour l’étape des moteurs de requête chargés du récupération, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût en tokens ou requêtes à côté des résultats fonctionnels. Une visibilité précoce du coût évite les factures inattendues lorsque le processus passe de la version démo à celle en production.

environnements partagés.

query_embedding = embed(query)

documents = search(query_embedding)

context = build_context(documents)

answer = llm.generate(
    query=query,
    context=context,
)
query_engine = index.as_query_engine()

response = query_engine.query(
    "How does authentication work?"
)

C’est à l’étape de récupération que de nombreux systèmes RAG échouent

Lorsque vous travaillez sur l’étape de récupération, notez d’abord les exigences : entrées requises, signal de succès et conséquences en cas d’échec partiel. Cette liste de contrôle permet de maintenir l’honnêteté des modifications ultérieures du code. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les administrateurs peuvent auditer sans devoir lire l’ensemble du système. Mesurez le taux de rappel sur un ensemble fixe de questions avant d’ajuster les prompts. Changer fréquemment les prompts ne résout que rarement un problème de qualité de récupération insuffisante.

User Question
      ↓
Bad Retrieval
      ↓
Wrong Context
      ↓
LLM
      ↓
Bad Answer

Mieux améliorer la récupération avec des métadonnées

Lors de la phase d’amélioration de la récupération grâce aux métadonnées, notez d’abord les exigences : entrées requises, signal de succès et comportement en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Documentez ensemble le parcours normal et les procédures de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations ultérieures. Mesurez le taux de rappel sur un ensemble de questions fixe avant d’ajuster les prompts. Le simple remplacement des prompts ne résout que rarement un système de récupération insuffisant.

Product A
Product B
Product C
product = Product B
version = 3
document_type = documentation
Entire Knowledge Base
        ↓
Metadata Filter
        ↓
Relevant Subset
        ↓
Semantic Search

La recherche hybride peut être meilleure que la recherche vectorielle seule

Lors du travail sur l’étape « Hybrid Search Can Be », notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Préférez des unités petites et testables plutôt que des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité et non un processus embrouillé. Mesurez le taux de rappel sur un ensemble de questions fixe avant d’ajuster les prompts. Un changement fréquent des prompts ne résout que rarement un système de récupération insuffisant. Lors du travail sur l’étape « Hybrid Search Can Be », notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Enregistrez les temps d’exécution ainsi que le coût en tokens ou requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le système passe de l’environnement de démonstration à des environnements partagés.

ERR_CONNECTION_RESET_502
Dense Retrieval
      +
Sparse Retrieval
      ↓
Result Fusion
      ↓
Reranking

Réclassement : consacrer davantage de ressources de calcul uniquement aux meilleurs candidats

L’étape de réclassement « Consacrer davantage de ressources de calcul » fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript parfait, un cas d’échec et la note de réversion avant d’élargir le périmètre. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Séparez la politique de segmentation des données de la politique de récupération. Modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité évoluent.

Top 20 documents
Vector Search
     ↓
20 candidates
     ↓
Reranker
     ↓
Top 5
     ↓
LLM
Retriever
→ Find potentially relevant documents

Reranker
→ Determine which are actually relevant

LLM
→ Use those documents to answer

Le contexte est une ressource limitée

Le Context Is a Limited stage fonctionne le mieux lorsqu’il est considéré comme une surface mesurable. Capturez un transcript exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Documentez en même temps le parcours optimal et le parcours de récupération. Les tentatives répétées, les contrôles humains et le traitement des messages non livrés font partie intégrante du produit, et non d’une mise en forme ultérieure. Séparez la politique de segmentation de la politique de récupération : modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité évoluent.

20 chunks
×
500 tokens
=
10,000 tokens
Retrieve 20
     ↓
Rerank
     ↓
Keep 5
     ↓
Compress
     ↓
Send 2,500 tokens

LlamaIndex RAG pour PDFs

La phase LlamaIndex RAG pour les PDF fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Préférez des unités petites et testables plutôt que des scripts complexes. Lorsqu’une étape échoue, l’échec doit pointer vers une seule responsabilité et non vers un processus embrouillé. Séparez la politique de segmentation des données de la politique de récupération. Modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité changent. La phase LlamaIndex RAG pour les PDF fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le système passe d’un environnement de démonstration à des environnements partagés.

PDF Files
    ↓
Document Loading
    ↓
Text Extraction
    ↓
Chunking
    ↓
Embeddings
    ↓
Vector Store
    ↓
Retriever
    ↓
LLM
Company Handbook
        ↓
Employee Documentation
        ↓
HR Policies
        ↓
Benefits
        ↓
Leave Policies

LlamaIndex RAG pour les applications d’IA

Pour la phase LlamaIndex RAG pour l’IA, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les stocks de secrets et les flags fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation.

User
 ↓
RAG
 ↓
Answer
                      User
                        ↓
                      Agent
                        ↓
              ┌─────────┼─────────┐
              ↓         ↓         ↓
             RAG     Database    API
              ↓         ↓         ↓
              └─────────┼─────────┘
                        ↓
                       LLM
                        ↓
                     Answer

La latence RAG est importante

Pour l’étape RAG Latency Matters, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie du produit, et non d’une amélioration ultérieure. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation.

Query
 ↓
Embedding API
 ↓
Vector Database
 ↓
Reranker
 ↓
LLM

Récupérer moins de documents

Pour l’étape « Récupérer moins de documents », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Citez les passages qui ont réellement servi de base à la réponse. Sans citations, les opérateurs ne peuvent pas distinguer une hallucination d’un manque d’indexation. Pour l’étape « Récupérer moins de documents », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce du coût évite les factures inattendues lorsque le processus passe de la démonstration à un environnement partagé.

Utiliser les filtres de métadonnées

Lors de l’étape d’utilisation des filtres de métadonnées, notez d’abord les exigences : entrées requises, signal de succès et conséquences en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les administrateurs peuvent auditer sans devoir lire l’ensemble du système. Mesurez le taux de rappel sur un ensemble fixe de questions avant d’ajuster les prompts. Un changement fréquent des prompts ne résout que rarement un système de récupération insuffisant.

Paralléliser les opérations de récupération indépendantes

Lorsque vous travaillez sur l’étape de récupération indépendante à paralléliser, notez d’abord les exigences : entrées requises, signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Documentez ensemble le parcours normal et les procédures de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations apportées ultérieurement. Mesurez le taux de rappel sur un ensemble de questions fixe avant d’ajuster les prompts. Le changement fréquent des prompts ne résout que rarement un système de récupération insuffisant.

Dense ──────┐
            ├──→ Fusion
Sparse ─────┘
Dense
 ↓
Sparse
 ↓
Fusion

Réduire la taille des prompts

Lors de la phase de réduction de la taille du prompt, notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Préférez des unités petites et testables plutôt que des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité et non un processus embrouillé. Cachez les instructions du système stables ainsi que les schémas des outils. Envoyer à nouveau un préambule identique est une cause fréquente de gaspillage. Lors de la phase de réduction de la taille du prompt, notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés.

Diffuser la réponse

La phase d’envoi de la réponse fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript parfait, un cas d’échec et la note de réversion avant d’élargir le périmètre. Conservez les configurations en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Séparez la politique de segmentation de la politique de récupération. Modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité évoluent.

RAG ne concerne pas seulement la précision

Le RAG ne fonctionne le mieux que s’il est considéré comme une surface mesurable. Capturez un transcript parfait, un cas d’échec et la note de réversion avant d’élargir le périmètre. Documentez en même temps le parcours optimal et celui de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’une mise en forme ultérieure. Séparez la politique de segmentation des données de la politique de récupération ; modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité évoluent.

                RAG Quality
                     │
        ┌────────────┼────────────┐
        ↓            ↓            ↓
   Retrieval      Generation    System
     Quality        Quality     Performance
        │            │            │
    Recall        Faithfulness  Latency
    Precision     Relevance     Cost
    Ranking       Completeness  Reliability

Erreurs courantes lors de la création de RAG avec LlamaIndex

Les erreurs fréquentes lors de la construction de stages fonctionnent le mieux lorsque l’on les considère comme une surface mesurable. Capturez un transcript exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’erreur doit pointer vers une seule responsabilité plutôt que vers un processus embrouillé. Séparez la politique de segmentation de la politique de récupération. Modifier l’une ne doit pas obliger à réécrire l’autre lorsque les métriques de qualité changent.

Erreur 1 : Considérer le LLM comme l’ensemble du système

L’erreur n°1 : traiter l’étape comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Nommez les artefacts, définites des critères de succès et refusez toute mise en œuvre partielle silencieuse. Fixez un budget de tokens par tour et par session. Les outils agents élargissent lourdement le contexte ; des plafonds stricts empêchent que les démos ne se transforment en factures inattendues.

Erreur n°2 : utiliser de très gros blocs

L’erreur n°2 : utiliser de très grands volumes pour l’étape fonctionne mieux lorsque celle-ci est traitée comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe de la démo à des environnements partagés.

Erreur n°3 : récupérer trop d’informations

Erreur 4 : Ignorer les métadonnées

Erreur 5 : Omettre l’évaluation

Erreur 6 : Penser que la recherche vectorielle suffit

Une architecture LlamaIndex RAG orientée vers la production

                         User Query
                              │
                              ▼
                       Query Processing
                              │
                              ▼
                       Query Router
                              │
               ┌──────────────┴──────────────┐
               │                             │
          Direct Answer                 Retrieval Needed
                                             │
                                             ▼
                                    Metadata Filtering
                                             │
                          ┌──────────────────┴──────────────────┐
                          ▼                                     ▼
                    Dense Search                         Sparse Search
                          │                                     │
                          └──────────────────┬──────────────────┘
                                             ▼
                                           Fusion
                                             │
                                             ▼
                                          Rerank
                                             │
                                             ▼
                                      Context Selection
                                             │
                                             ▼
                                            LLM
                                             │
                                             ▼
                                         Response

Commencer avec le RAG le plus simple possible

Documents
   ↓
Chunk
   ↓
Embed
   ↓
Vector Store
   ↓
Retrieve
   ↓
LLM
Add metadata
Add hybrid retrieval
Add reranking
Add context compression
Cache + parallelize + reduce retrieval

Le véritable pouvoir de LlamaIndex

Documents
Databases
APIs
Knowledge Bases
Search Systems
Structured Data
Unstructured Data
LLM
                  AI Application
                         │
        ┌────────────────┼────────────────┐
        ↓                ↓                ↓
      LLM              Tools            Data
                         │                │
                         └───────┬────────┘
                                 ↓
                              Retrieval
                                 ↓
                              Context
                                 ↓
                                LLM

Considerations finales

Data
 ↓
Ingestion
 ↓
Indexing
 ↓
Retrieval
 ↓
Context
 ↓
LLM
 ↓
Answer

Liste de contrôle opérationnelle