Le RAG (Retrieval-Augmented Generation) est une technologie qui permet à une IA d’enrichir ses réponses en recherchant des passages pertinents dans une base de connaissances avant de générer du texte.
La base vectorielle (QDrant) stocke les documents sous forme de vecteurs.
Lors d’une requête, le RAG cherche les passages les plus proches sémantiquement de la question.
La qualité de la recherche dépend fortement de la qualité des documents fournis.
👉 En résumé : un document clair, structuré et concis sera mieux compris par le RAG qu’un fichier brouillon ou désorganisé.
La recherche vectorielle se déroule en plusieurs étapes clés :
Les documents sont découpés en morceaux cohérents (chunks), souvent de quelques centaines de mots.
👉 Cela permet de rechercher à l’échelle d’un paragraphe ou d’une section plutôt que sur tout le document.
Chaque segment est transformé en un vecteur numérique grâce à un modèle d’embeddings.
👉 Ce vecteur capture le sens du texte plutôt que sa forme exacte.
Lorsqu’un utilisateur pose une question :
La question est aussi vectorisée.
Le système calcule la distance entre ce vecteur et ceux de la base (par ex. via la similarité cosinus).
Les segments les plus proches sont sélectionnés comme les plus pertinents.
Enfin, le Live Avatar combine :
La requête de l’utilisateur
Les segments retrouvés
👉 pour générer une réponse complète, contextualisée et fidèle aux documents sources.
Un document lisible par un RAG doit respecter une hiérarchie logique :
Titres et sous-titres clairs (H1, H2, H3)
Paragraphes courts (3–4 phrases maximum)
Listes à puces ou numérotées pour les énumérations
Tableaux pour organiser des données chiffrées
Chaque niveau doit avoir un objectif distinct
Évitez plus de 4 niveaux de profondeur
Paragraphes : 50-150 mots maximum
Sections : 200-500 mots
Sous-sections : 100-300 mots
Exemple correct :
# Politique de télétravail
## Eligibilité
- Tous les employés en CDI
- Après 3 mois d’ancienneté
## Fréquence
- Jusqu’à 3 jours par semaine
# Titre principal du document
## Résumé exécutif (optionnel)
## Table des matières (pour documents longs)
## Section 1 : [Titre descriptif]
### Sous-section 1.1
Contenu...
### Sous-section 1.2
Contenu...
## Section 2 : [Titre descriptif]
...
Exemple incorrect :
Politique de télétravail : tous les employés en CDI peuvent faire du télétravail après 3 mois d’ancienneté et ce maximum 3 jours par semaine.
Chaque paragraphe doit être auto-suffisant et compréhensible sans contexte externe.
## Configuration du serveur de production
Le serveur de production utilise Ubuntu 20.04 avec 16 GB de RAM.
Pour configurer l'environnement, installez Docker version 20.10.x
et configurez le port 8080 pour l'application web.
## Configuration
Utilisez la version mentionnée précédemment.
Configurez le port comme indiqué plus haut.
Répétez les concepts importants dans différents contextes
Utilisez des synonymes et reformulations
Créez des liens conceptuels entre les sections
Phrases courtes : 15-25 mots maximum
Vocabulaire précis : évitez les termes vagues
Définitions : expliquez systématiquement les acronymes et termes techniques
Commencez par l'information principale
Utilisez la voix active
Évitez les négations complexes
L'API REST accepte les requêtes GET sur l'endpoint /users.
Cette fonctionnalité retourne la liste complète des utilisateurs actifs.
Il n'est pas impossible que l'API ne refuse pas les requêtes
qui ne sont pas envoyées sur le bon endpoint.
Gardez à l’esprit ces 5 principes généraux
Précision : évitez les phrases trop vagues.
Clarté : utilisez un vocabulaire simple, sans jargon inutile.
Concision : privilégiez des phrases courtes.
Contexte explicite : un passage doit être compréhensible même isolé.
Évitez les abréviations non définies : toujours expliquer au moins une fois.
Gras : concepts clés, termes importants
Italique : emphasis, termes étrangers
Code inline : commandes, variables, noms de fichiers
Citations : références, notes importantes
Utilisez des listes à puces pour les énumérations non ordonnées
Utilisez des listes numérotées pour les procédures
Limitez à 7 éléments maximum par liste
Un bon formatage facilite l’indexation et améliore la pertinence de la recherche.
Titres : toujours utiliser une hiérarchie claire.
Dates : utiliser un format standard (YYYY-MM-DD).
Noms propres : écrire correctement les noms d’entreprise, de produits, etc.
Mots-clés : les répéter naturellement dans le texte.
👉 Lorsque possible, ajoutez des métadonnées dans vos documents (ex. auteur, sujet, version).
Placez l'information la plus importante en début de paragraphe.
✅ Le serveur MySQL nécessite 8 GB de RAM minimum pour fonctionner
correctement en production. Cette configuration assure des performances
optimales pour jusqu'à 1000 connexions simultanées.
❌ Pour assurer des performances optimales, il faut savoir que
le serveur, qui utilise MySQL, a besoin d'une certaine quantité
de mémoire, soit 8 GB de RAM minimum.
Fournissez toujours le contexte nécessaire à la compréhension.
✅ Dans l'environnement de production AWS, la base de données PostgreSQL
v13 stocke les données utilisateur dans le schéma 'users_prod'.
❌ La base de données stocke les données dans le schéma 'users_prod'.
Utilisez des synonymes pour les concepts clés
Incluez les termes techniques ET leur équivalent en langage simple
Mentionnez les variantes terminologiques
## Authentification utilisateur (Login/Connexion)
Le processus d'authentification (login, connexion, identification)
permet de vérifier l'identité de l'utilisateur. Cette procédure
de sécurité valide les credentials (identifiants, informations
de connexion) avant d'autoriser l'accès.
Intégrez naturellement les questions que les utilisateurs pourraient poser.
## Résolution des erreurs de connexion
Que faire en cas d'erreur de connexion ? Comment résoudre les problèmes d'authentification ? Cette section explique les étapes de diagnostic pour identifier et corriger les erreurs de login les plus fréquentes.
Pour maximiser l’efficacité du RAG :
Diviser un document long en sections cohérentes plutôt qu’un bloc massif.
Éviter les répétitions inutiles (brouillent le moteur).
Privilégier un langage factuel (dates, chiffres, définitions).
Inclure des glossaires si le domaine contient du vocabulaire technique.
Utiliser des résumés en début de document.
Chaque format a ses particularités :
✅ Bien supporté si la structure est claire (titres, styles, listes).
⚠️ Éviter les mises en page complexes (colonnes, zones de texte flottantes).
Les fichiers DOCX présentent des avantages significatifs par rapport aux PDF :
Structure XML native : Architecture claire et parsable
Styles préservés : Hiérarchie des titres maintenue
Métadonnées riches : Informations complètes sur le document
Extraction fiable : Texte et formatage parfaitement préservés
Images avec texte alternatif : Contenu accessible
Commentaires et révisions : Contexte supplémentaire disponible
✅ Structure optimale avec styles natifs :
Titre 1 (Style "Titre 1") : Guide d'installation
Titre 2 (Style "Titre 2") : Prérequis système
Titre 3 (Style "Titre 3") : Configuration matérielle
Titre 3 (Style "Titre 3") : Configuration logicielle
Titre 2 (Style "Titre 2") : Procédure d'installation
Titre 3 (Style "Titre 3") : Installation serveur
Titre 3 (Style "Titre 3") : Configuration réseau
❌ Formatage manuel à éviter :
Texte en gras et grande taille au lieu des styles
Numérotation manuelle au lieu des styles automatiques
Styles personnalisés optimaux :
- Style "Titre document" :
- Police : Arial 16pt, Gras
- Espacement : Avant 0pt, Après 12pt
- Numérotation : Aucune
- Style "Titre 1 - Section" :
- Police : Arial 14pt, Gras
- Espacement : Avant 18pt, Après 6pt
- Numérotation : 1. 2. 3.
- Style "Titre 2 - Sous-section" :
- Police : Arial 12pt, Gras
- Espacement : Avant 12pt, Après 4pt
- Numérotation : 1.1. 1.2. 1.3.
- Style "Corps de texte optimisé" :
- Police : Calibri 11pt
- Espacement : Avant 0pt, Après 6pt
- Interligne : 1.15
Page 1 - Métadonnées complètes :
[Style "Titre document"]
Guide d'utilisation API REST - Version 2.1
[Style "Métadonnées"]
Document : Guide technique API REST
Version : 2.1.0
Date de création : 15 janvier 2024
Dernière modification : 10 mars 2024
Auteur : Équipe Développement API
Réviseurs : Marie Martin (Lead Tech), Jean Dupont (DevOps)
Classification : Documentation publique
Mots-clés : API, REST, authentification, endpoints, développement
[Style "Résumé exécutif"]
Résumé : Ce guide détaille l'utilisation de l'API REST v2.1 incluant l'authentification OAuth2, les 25 endpoints disponibles, les codes de retour et les exemples d'intégration pour les équipes de développement.
[Saut de page]
✅ Table des matières générée automatiquement :
- Utiliser Références > Table des matières > Automatique
- Basée sur les styles de titres
- Mise à jour automatique des numéros de page
- Liens hypertexte vers les sections
❌ Table des matières manuelle à éviter :
- Numéros de page à maintenir manuellement
- Pas de liens de navigation
- Risque d'obsolescence
Fichier > Informations > Propriétés :
Titre : Guide d'utilisation API REST v2.1
Auteur : Équipe Développement API
Gestionnaire : Marie Martin
Société : MonEntreprise SAS
Catégorie : Documentation technique
Mots-clés : API, REST, OAuth2, endpoints, développement, intégration
Commentaires : Guide complet pour développeurs, inclut exemples code et cas d'usage
Statut : Version finale approuvée
✅ Commentaires pour contexte supplémentaire :
Texte principal : "Configurez l'endpoint /api/v2/users"
Commentaire associé : "Cet endpoint a été modifié en version 2.1 pour améliorer les performances. L'ancienne version /api/v1/users reste compatible jusqu'en décembre 2024."
Texte principal : "Taux limite : 1000 requêtes/heure"
Commentaire associé : "Cette limite peut être augmentée sur demande pour les clients entreprise. Contacter support@entreprise.com"
✅ Conserver l'historique des modifications :
- Activer le suivi des modifications pour les versions importantes
- Conserver les commentaires de révision
- Documenter les changements dans une section "Historique des versions"
Exemple de section historique :
## Historique des versions
**Version 2.1.0 - 10 mars 2024**
- Ajout de l'endpoint /api/v2/analytics
- Amélioration de la sécurité OAuth2
- Correction des exemples de code Python
**Version 2.0.0 - 15 janvier 2024**
- Migration vers architecture REST pure
- Nouveau système d'authentification
- Refonte complète de la documentation
✅ Listes avec styles appropriés :
Style "Liste à puces niveau 1" :
- Authentification obligatoire pour tous les endpoints
- Format JSON pour toutes les réponses
- HTTPS requis en production
Style "Liste numérotée" pour procédures :
1. Obtenir un token d'accès via /auth/token
2. Inclure le token dans l'en-tête Authorization
3. Effectuer la requête sur l'endpoint souhaité
4. Traiter la réponse JSON reçue
❌ Formatage manuel à éviter :
- Utilisation de tirets ou astérisques tapés manuellement
- Numérotation manuelle des étapes
✅ Tableau avec titre et description :
[Style "Titre tableau"]
Tableau 1 : Codes de retour HTTP de l'API REST
[Description avant tableau]
Ce tableau liste tous les codes de retour possibles de l'API avec leur signification et les actions recommandées pour chaque cas.
| Code HTTP | Signification | Description complète | Action recommandée |
|-----------|---------------|---------------------|-------------------|
| 200 | Succès | Requête traitée avec succès, données retournées | Traiter les données reçues |
| 401 | Non autorisé | Token manquant ou invalide | Renouveler l'authentification |
| 429 | Trop de requêtes | Limite de taux dépassée | Attendre puis réessayer |
[Description après tableau]
En cas d'erreur, l'API retourne également un message JSON explicite dans le corps de la réponse pour faciliter le débogage.
✅ Images avec métadonnées complètes :
Image : diagramme_architecture.png Titre : "Architecture microservices de l'API" Texte alternatif : "Diagramme montrant API Gateway connecté à 3 microservices (Users, Orders, Payments) avec leurs bases de données respectives" Description détaillée : "Ce diagramme illustre l'architecture de l'API REST v2.1. L'API Gateway (nginx) reçoit les requêtes clients et les route vers les microservices appropriés : le service Users gère l'authentification et les profils, le service Orders traite les commandes, et le service Payments gère les paiements. Chaque service possède sa propre base de données PostgreSQL."
✅ Légendes complètes :
Figure 2 : Flux de traitement d'une requête API Cette séquence montre le parcours complet d'une requête depuis le client jusqu'à la base de données. Les temps de réponse moyens sont indiqués à chaque étape : authentification (50ms), validation (20ms), traitement métier (100ms), accès BDD (200ms).
✅ Compatible si le texte est sélectionnable.
⚠️ Éviter les scans d’images ou PDF non OCRisés (inexploitables).
Les PDF présentent des défis uniques pour l'extraction et la vectorisation :
Formatage complexe : colonnes, tableaux, en-têtes/pieds de page
Images et graphiques : contenu non textuel difficile à extraire
Ordre de lecture : séquence de texte parfois incorrecte
Polices et encodage : caractères mal interprétés
Métadonnées limitées : structure moins claire qu'un document structuré
Optimisez votre document source (Word, Google Docs, etc.) :
✅ Document source bien structuré :
- Styles de titres cohérents (Titre 1, Titre 2, Titre 3)
- Paragraphes courts et bien délimités
- Listes à puces avec formatage approprié
- Tableaux simples et bien étiquetés
- Images avec texte alternatif descriptif
Résolution : 150-300 DPI pour le texte
Polices : Utiliser des polices standards (Arial, Times, Calibri)
OCR : Activer la reconnaissance optique si nécessaire
Liens : Préserver la structure des liens internes
Métadonnées : Inclure titre, auteur, mots-clés, sujet
❌ Évitez les en-têtes/pieds répétitifs :
"Confidentiel - Document interne - Page 1/50"
"Confidentiel - Document interne - Page 2/50"
...
✅ Préférez des en-têtes informatifs :
"Guide d'installation - Configuration serveur"
"Guide d'installation - Dépannage"
✅ Tableaux optimisés pour l'extraction :
Fonctionnalité | Description | Version requise
---|---|---
API REST | Interface de programmation | v2.1+
WebSocket | Communication temps réel | v2.3+
OAuth | Authentification sécurisée | v2.0+
❌ Tableaux complexes à éviter :
- Cellules fusionnées multiples
- Tableaux imbriqués
- Formatage graphique complexe
Texte alternatif : Description complète du contenu
Avant d'uploader votre PDF, testez l'extraction :
Ouvrez le PDF dans un lecteur
Sélectionnez et copiez du texte
Collez dans un éditeur de texte
Vérifiez la cohérence et l'ordre du texte
Adobe Acrobat : Vérification de l'accessibilité
PDFtk : Analyse de la structure
Tabula : Test d'extraction de tableaux
Tesseract : OCR pour documents scannés
Titre : Guide complet d'installation du logiciel XYZ
Auteur : Équipe technique ABC
Sujet : Installation, configuration, dépannage logiciel XYZ
Mots-clés : installation, configuration, serveur, API, base de données, dépannage
Créateur : Équipe Documentation
✅ Possible uniquement si elles sont accompagnées de légendes descriptives.
⚠️ Une image seule sans texte est inexploitable.
Utilisez un vocabulaire accessible
Incluez des captures d'écran décrites
Prévoyez des chemins alternatifs
❌ Fournir des documents trop longs sans structure.
❌ Charger des fichiers scannés sans OCR.
❌ Utiliser un jargon non expliqué.
❌ Avoir des titres vagues ("Infos diverses", "Notes").
❌ Mettre tout le contenu dans un seul tableau ou une seule phrase.
Section A : "Voir section B pour plus de détails"
Section B : "Comme expliqué en section A..."
## Titre 1
Première partie de l'information...
## Titre 2 (non lié)
Autre sujet...
## Titre 3
...suite de l'information du titre 1
"Configurez le TTL du cache Redis pour optimiser les performances"
(Sans expliquer ce qu'est TTL, Redis, ou l'impact sur les performances)
# Niveau 1
## Niveau 2
### Niveau 3
#### Niveau 4
##### Niveau 5 ← Évitez ce niveau de profondeur
Avant d’envoyer un document, vérifiez :
Le texte est clair, structuré et concis.
Les titres et sous-titres sont bien hiérarchisés.
Les données tabulaires ont des en-têtes explicites.
Les abréviations sont définies.
Les fichiers PDF sont OCRisés.
Les images sont accompagnées de légendes.
Les métadonnées (auteur, date, sujet) sont renseignées.
Le document est compréhensible même par une personne extérieure.
Titre principal explicite et descriptif
Table des matières pour documents > 1000 mots
Hiérarchie de titres cohérente (H1, H2, H3)
Sections de taille appropriée (200-500 mots)
Navigation logique entre les sections
Chaque paragraphe est auto-suffisant
Informations clés répétées dans différents contextes
Vocabulaire technique expliqué
Exemples concrets fournis
Questions utilisateur anticipées
Métadonnées complètes en en-tête
Formatage cohérent (gras, italique, code)
Listes structurées et limitées
Code commenté et expliqué
Pas de références vagues ("comme mentionné plus haut")
Contexte fourni pour chaque information
Synonymes utilisés pour concepts clés
Densité informationnelle optimisée
Un utilisateur peut-il comprendre chaque section indépendamment ?
Les informations importantes sont-elles facilement retrouvables ?
Le vocabulaire est-il adapté au niveau des utilisateurs ?
Les exemples sont-ils complets et fonctionnels ?
Le document répond-il aux questions courantes sur le sujet ?
👉 Avec ces bonnes pratiques, vous maximisez la qualité des résultats du Live avatar et réduisez le risque de réponses imprécises ou hors contexte.
Analysez les questions fréquentes posées au Live avatar
Identifiez les lacunes dans les réponses générées
Mettez à jour régulièrement vos documents
Sollicitez des retours utilisateur