Citations avec Sources : Reference Object et RAG
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 Reference Object
Le coeur du système de citations repose sur le Reference 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 Reference Object
reference_id— Identifiant unique de la source, utilisé dans les citations de la réponseurl— URL de la source originale (optionnel mais recommandé)title— Titre de la source pour l’affichagesnippets— Extraits pertinents du document source. C’est le contenu que le modèle utilise pour ancrer sa réponse.description— Description courte de la sourcedate— Date de publication ou de dernière mise à joursource_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 Reference 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 :
- Gardez les snippets concis — 2 à 5 phrases par snippet. Trop long dilue la pertinence.
- Incluez le contexte — Un snippet isolé de son contexte peut être mal interprété par le modèle.
- Limitez le nombre de sources — 3 à 7 références par requête. Au-delà, le modèle a du mal à toutes les exploiter.
- Priorisez la fraîcheur — Passez les documents les plus récents en premier si la temporalité compte.
Points clés à retenir
- Le Reference 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