Lenobot
Retour au blog

RAG pour la doc interne : transformer votre wiki en assistant intelligent

Votre Notion fait 4000 pages que personne ne lit. Voici comment transformer cette doc fantôme en assistant IA qui répond en 3 secondes, avec coûts et architecture 2026.

18 mars 202610 min de lecture
RAG pour la doc interne : transformer votre wiki en assistant intelligent

Le drame silencieux : 80% de votre doc interne n'est jamais lue

Faites le test : demandez à 10 collaborateurs où trouver la procédure d'onboarding client. Vous obtiendrez 10 réponses différentes, ou pire, 10 "euh, je sais pas". Pourtant, votre Notion, votre Confluence ou votre Google Drive contient cette procédure. Quelque part. Dans une des 4000 pages que personne n'ose ouvrir.

La solution en 2026 : un système RAG (Retrieval-Augmented Generation) qui transforme votre doc fantôme en assistant intelligent, accessible via Slack, Teams ou un chat web. Voici le guide complet pour réussir.

C'est quoi un RAG, vraiment

RAG = Retrieval-Augmented Generation. Concrètement :

  1. Vous indexez votre doc dans une vector database
  2. Quand un user pose une question, vous cherchez les passages pertinents
  3. Vous injectez ces passages + la question dans un LLM
  4. Le LLM répond en citant ses sources

Pas magique, mais redoutablement efficace quand c'est bien fait. La majorité des projets RAG échouent parce qu'ils sautent les étapes critiques (chunking, hybrid search, reranking, validation).

L'architecture qui marche en 2026

SOURCES (Notion, Confluence, Google Drive, GitHub, Intercom)
    |
    v
INGESTION (Parsing + Chunking smart + Metadata)
    |
    v
EMBEDDING (Voyage-3-Large)
    |
    v
VECTOR DB (pgvector, Pinecone, Qdrant)
    |
    v
HYBRID SEARCH (vector + BM25)
    |
    v
RERANKER (Cohere Rerank-3)
    |
    v
LLM (Claude 4.7) avec citations

Étape 1 : le chunking, là où tout se joue

Le chunking, c'est la découpe de vos documents en morceaux indexables. Mauvais chunking = mauvais RAG, point final.

À ne PAS faire :

  • Découper tous les 500 caractères aveuglément
  • Couper au milieu d'une phrase ou d'un tableau
  • Ignorer la hiérarchie (titres, sous-titres)

À faire :

  • Semantic chunking : découper par section logique (titre H2, paragraphe complet)
  • Overlap de 15-20% entre chunks pour éviter de perdre du contexte
  • Metadata enrichies : titre du doc, section, date de mise à jour, auteur, tags
  • Chunks de 300-800 tokens (ni trop gros, ni trop petits)
from unstructured.partition.auto import partition
from langchain.text_splitter import MarkdownHeaderTextSplitter

headers = [("#", "h1"), ("##", "h2"), ("###", "h3")]
splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers)

chunks = splitter.split_text(markdown_content)

# Enrichissement metadata
for chunk in chunks:
    chunk.metadata.update({
        "source_url": source_url,
        "last_updated": doc_date,
        "author": author,
        "team": detect_team(source_url)
    })

Étape 2 : l'embedding, choisir le bon modèle

En 2026, le marché s'est clarifié. Notre top 3 :

| Modèle | Dimensions | Prix /M tokens | Quand l'utiliser | |--------|-----------|----------------|------------------| | Voyage-3-Large | 1024 | 0,18€ | Default, top qualité multi-lingue | | OpenAI text-embedding-3-large | 3072 | 0,13€ | Si déjà OpenAI dans votre stack | | Cohere embed-v4 | 1536 | 0,10€ | Volumes massifs, bon FR/EN |

Notre recommandation par défaut : Voyage-3-Large. Le ratio qualité/prix est imbattable en 2026, surtout pour du contenu français.

Étape 3 : hybrid search (le secret de la précision)

Ne vous contentez JAMAIS de vector search seul. La combinaison vector + BM25 (keyword) augmente la précision de 25 à 40%.

-- Avec pgvector + tsvector (Postgres)
WITH semantic AS (
    SELECT id, 1 - (embedding <=> $1::vector) AS score
    FROM chunks
    ORDER BY embedding <=> $1::vector
    LIMIT 50
),
keyword AS (
    SELECT id, ts_rank(tsv, plainto_tsquery('french', $2)) AS score
    FROM chunks
    WHERE tsv @@ plainto_tsquery('french', $2)
    LIMIT 50
)
SELECT id, 
    COALESCE(s.score, 0) * 0.7 + COALESCE(k.score, 0) * 0.3 AS hybrid_score
FROM semantic s
FULL OUTER JOIN keyword k USING (id)
ORDER BY hybrid_score DESC
LIMIT 20;

Les ratios 70/30 sont un bon point de départ, à ajuster selon votre corpus.

Étape 4 : reranking (le gain ultime)

Le reranking, c'est le passage obligé pour passer d'un RAG "correct" à un RAG "excellent". Vous récupérez 20 chunks via hybrid search, vous les passez à un reranker qui les classe par pertinence réelle, et vous gardez les 5 meilleurs pour le LLM.

import cohere

co = cohere.Client(api_key=...)

reranked = co.rerank(
    model="rerank-3",
    query=user_question,
    documents=[chunk.content for chunk in candidates],
    top_n=5
)

final_chunks = [candidates[r.index] for r in reranked.results]

Impact mesuré : précision @5 passe typiquement de 65% à 89%. C'est énorme.

💡 Vous voulez intégrer un agent IA dans votre business ? On en discute 15 minutes : rdv.lenobot.com.

Étape 5 : le prompt LLM avec citations

RAG_PROMPT = """Tu es l'assistant interne de [Entreprise]. Réponds à la question en t'appuyant UNIQUEMENT sur les sources fournies.

RÈGLES :
- Si l'info n'est pas dans les sources, dis-le clairement
- Cite tes sources avec [source:N] où N est le numéro de la source
- Réponds en français, ton pro mais accessible
- Maximum 4 paragraphes, sauf demande explicite

SOURCES :
{formatted_sources}

QUESTION : {question}
"""

response = client.messages.create(
    model="claude-opus-4-7",
    max_tokens=2048,
    messages=[{"role": "user", "content": RAG_PROMPT.format(...)}]
)

Le piège de la fraîcheur

Votre doc évolue en permanence. Si vous indexez une fois et oubliez, votre RAG dira "la procédure de remboursement est X" alors qu'elle a changé il y a 3 semaines.

Solutions :

  • Webhooks : Notion, Confluence, Google Drive ont tous des webhooks. Triggez une réindexation à chaque update.
  • Crawl incrémental : tous les jours à 3h du matin, scannez les doc modifiées dans les dernières 24h.
  • TTL sur les chunks : marquez comme "stale" ce qui n'a pas été revérifié depuis 30 jours.

Les pièges classiques (vu chez nos clients)

  1. Pas de filtre de permission : votre RAG répond à tout le monde sur tout. Catastrophe RGPD si la doc RH leak chez les sales. Toujours filtrer par user/équipe.
  2. Hallucinations malgré tout : si vous ne demandez pas explicitement les citations, le LLM brode. Forcez le format [source:N].
  3. Pas de validation gold dataset : vous lancez en prod et croyez que ça marche. Sans dataset de référence (50 questions/réponses gold), vous volez à l'aveugle.
  4. Tout indexer : vos vieilles slides de 2018 polluent les résultats. Faites le ménage avant l'indexation.

Coût réel d'un RAG en production

Pour 5000 documents (~25K chunks), 200 utilisateurs, 30 questions/user/mois :

| Poste | Coût mensuel | |-------|--------------| | Embedding initial (one-shot) | 12€ | | Re-indexation incrémentale | 8€ | | Vector DB (pgvector sur Supabase) | 25€ | | Reranking (Cohere) | 18€ | | LLM (Claude Opus 4.7 + cache) | 145€ | | Hosting backend | 30€ | | Total | 238€ |

Soit moins de 1,20€ par utilisateur/mois, pour faire gagner 30 minutes/jour à chaque collaborateur.

Frameworks 2026 recommandés

  • LlamaIndex : référence open-source, très flexible, communauté massive
  • LangChain : populaire mais parfois over-engineered
  • Vectara : SaaS clé en main, idéal sans équipe IA dédiée
  • Anthropic Contextual Retrieval : technique propriétaire (article sept 2024) qui boost de 35% le recall

Notre playbook 2026

  1. Audit de doc : identifier les 200 docs qui couvrent 80% des questions
  2. POC sur 1 équipe (commercial ou support) avec 50 questions de test
  3. Gold dataset de validation : 50 questions/réponses validées humainement
  4. Mesure : précision, recall, latence, satisfaction utilisateur
  5. Roll-out progressif : équipe par équipe, pas big bang

Prêt à transformer votre wiki interne en assistant IA qui répond en 3 secondes ? Notre équipe conçoit et déploie des RAG production-ready en 4 à 8 semaines. Réservez votre appel découverte gratuit sur rdv.lenobot.com, 15 minutes pour comprendre votre besoin, devis ferme sous 48h, sans engagement.

Article rédigé par L'équipe Lenobot.

Besoin d'aide avec votre projet ?

Nos experts sont prêts à vous accompagner dans votre transformation digitale.

Discutons de votre projet

Articles similaires