Aller au contenu principal

Citations avec Sources : Reference Object et RAG

Mis à jour le 29 juillet 2026

Pourquoi les citations sont essentielles en production

Lorsque vous déployez un système RAG (Retrieval-Augmented Generation) en production, vos utilisateurs ont besoin de vérifier les réponses du modèle. Une réponse sans source est une affirmation invérifiable. Les citations transforment une réponse d’IA en réponse documentée, traçable et fiable.

Mistral AI intègre nativement un mécanisme de citations qui permet au modèle de fonder ses réponses sur des documents sources et de fournir des références précises. Le modèle a été profondément entraîné pour s’ancrer sur des documents et extraire les passages pertinents.

Le Référence Object

Le coeur du système de citations repose sur le Référence Object, une structure de données qui décrit une source :

reference = {
    "type": "reference",
    "reference_id": "src-001",
    "url": "https://docs.example.com/guide",
    "title": "Guide de déploiement v3.2",
    "snippets": [
        "Le déploiement en production nécessite une vérification...",
        "Les tests de charge doivent valider au minimum 1000 req/s..."
    ],
    "description": "Documentation officielle de déploiement",
    "date": "2026-03-15",
    "source_id": "docs-deployment"
}

Champs du Référence Object

  • reference_id — Identifiant unique de la source, utilisé dans les citations de la réponse
  • url — URL de la source originale (optionnel mais recommandé)
  • title — Titre de la source pour l’affichage
  • snippets — Extraits pertinents du document source. C’est le contenu que le modèle utilise pour ancrer sa réponse.
  • description — Description courte de la source
  • date — Date de publication ou de dernière mise à jour
  • source_id — Identifiant du système source (utile quand vous agrégez plusieurs bases documentaires)

Architecture d’un pipeline RAG avec citations

Le workflow complet se décompose en quatre étapes :

1. Recherche de documents

Votre système de retrieval (Elasticsearch, Pinecone, pgvector, etc.) retourne les documents pertinents pour la requête utilisateur.

2. Construction des références

Vous structurez les documents retrouvés en Référence Objects :

def build_references(search_results):
    """Convertit les résultats de recherche en Reference Objects."""
    references = []
    for i, result in enumerate(search_results):
        ref = {
            "type": "reference",
            "reference_id": f"ref-{i:03d}",
            "url": result.get("url", ""),
            "title": result["title"],
            "snippets": result["relevant_passages"],
            "source_id": result.get("collection", "default")
        }
        references.append(ref)
    return references

3. Appel au modèle avec les références

Les références sont passées au modèle via le mécanisme de tools (outil de type référence) :

from mistralai import Mistral

client = Mistral(api_key="votre-clé-api")

# Définir l'outil de références
reference_tool = {
    "type": "function",
    "function": {
        "name": "get_references",
        "description": "Récupère les sources documentaires pertinentes",
        "parameters": {
            "type": "object",
            "properties": {
                "query": {"type": "string"}
            },
            "required": ["query"]
        }
    }
}

4. Le modèle cite ses sources

Dans sa réponse, le modèle référence les sources en utilisant les reference_id fournis. Vous pouvez ensuite parser la réponse pour extraire les citations et les afficher dans votre interface.

Bonnes pratiques pour les snippets

La qualité des citations dépend directement de la qualité de vos snippets, et le premier réglage à surveiller est leur longueur. Un snippet de deux à cinq phrases donne au modèle un passage dense et exploitable ; un extrait d’une page entière dilue l’information pertinente au point que le modèle cite la source sans vraiment s’y ancrer. Attention toutefois à ne pas couper trop court : un snippet arraché à son contexte peut être mal interprété — « le taux passe à 20 % » ne veut rien dire si la phrase précédente, qui précisait de quel taux il s’agit, a été coupée.

Le nombre de sources joue le même rôle que la longueur, à l’échelle de la requête. Entre trois et sept références, le modèle les exploite réellement et distribue ses citations ; au-delà, il tend à s’appuyer sur les deux ou trois premières et à ignorer le reste — vous payez des tokens de contexte pour des sources qui ne seront jamais citées. Enfin, quand la temporalité compte (documentation versionnée, tarifs, réglementation), placez les documents les plus récents en premier : l’ordre de présentation influence l’attention du modèle, et c’est un levier gratuit pour tirer les réponses vers l’information à jour.

Points clés à retenir

  • Le Référence Object structure vos sources avec URL, titre, snippets et métadonnées
  • Le modèle Mistral est entraîné nativement pour ancrer ses réponses dans les sources fournies
  • Les snippets doivent être concis et contextualisés pour des citations de qualité
  • Limitez-vous à 3-7 références par requête pour une exploitation optimale
  • Les citations transforment les réponses d’IA en informations vérifiables et traçables