Guides / RAG en français : une IA qui répond depu

RAG en français : une IA qui répond depuis VOS documents

📖 9 min de lecture3 août 2026

Faire répondre une IA à partir de VOS documents — règlements, catalogues, FAQ internes — c'est le principe du RAG (Retrieval-Augmented Generation). Voici la version minimale et fonctionnelle en Python, avec des embeddings multilingues qui comprennent le français.

Le principe en 30 secondes

Le modèle d'embeddings qu'il vous faut

Pour du contenu en français (ou mélangé), multilingual-e5-large est excellent et coûte une fraction de franc par document. text-embedding-3-small est l'alternative classique.

Le code complet (sans base vectorielle)

Pour moins de ~5 000 paragraphes, pas besoin d'infrastructure : numpy suffit.

rag.py
import numpy as np
from openai import OpenAI

client = OpenAI(base_url="https://api.deeprelay.io/v1", api_key="dr_votre_cle")
EMB = "intfloat/multilingual-e5-large"

documents = [
    "Les livraisons à Dakar sont effectuées sous 24h pour 1500 F.",
    "Les retours sont acceptés sous 7 jours avec le reçu d'achat.",
    "Le service client répond au 77 000 00 00, du lundi au samedi 9h-18h.",
    # … vos vrais documents ici
]

# 1. Indexation (à faire une fois, puis sauvegarder)
emb = client.embeddings.create(model=EMB, input=documents)
index = np.array([e.embedding for e in emb.data])

def repondre(question: str) -> str:
    # 2. Recherche des 3 passages les plus pertinents
    q = np.array(client.embeddings.create(model=EMB, input=question).data[0].embedding)
    scores = index @ q / (np.linalg.norm(index, axis=1) * np.linalg.norm(q))
    contexte = "\n".join(documents[i] for i in scores.argsort()[-3:])
    # 3. Réponse ancrée dans le contexte
    r = client.chat.completions.create(
        model="deepseek-ai/DeepSeek-V3",
        messages=[
            {"role": "system", "content": f"Réponds UNIQUEMENT à partir de ce contexte:\n{contexte}\nSi la réponse n'y est pas, dis-le."},
            {"role": "user", "content": question},
        ],
    )
    return r.choices[0].message.content

print(repondre("C'est combien la livraison à Dakar ?"))

Ce que ça coûte

OpérationCoût
Indexer 1 000 paragraphes< 5 F (une seule fois)
Une question (embedding + réponse)~0,4 F
📈 Au-delà de quelques milliers de documents, passez sur une base vectorielle (Qdrant, pgvector…) — le code d'appel API reste identique.

Combinez avec le bot WhatsApp et vous obtenez un service client qui connaît vraiment votre entreprise. Clé API gratuite ici.