Configurer le RAG avec la recherche documentaire

Téléchargez des documents dans une Bibliothèque et interrogez-les dans une Chat completion.

  • Créez une Bibliothèque et téléchargez un fichier
  • Le modèle extrait les passages pertinents de vos documents
  • Les réponses sont fondées sur votre contenu, plutôt que sur des connaissances générales

Durée estimée : environ 10 minutes

Prérequis

Prérequis

  • Une clé API Mistral (voir Obtenir votre clé API si vous n’en avez pas encore)
  • Python 3.9+ ou Node.js 18+ installé
  • Le SDK Mistral installé (voir Installer le SDK si ce n’est pas déjà fait)
  • Un document à télécharger (PDF, TXT ou DOCX)
Étape 1 : créer une Bibliothèque

Étape 1 : créer une Bibliothèque

Une Bibliothèque est un conteneur de documents dans lequel le modèle peut effectuer des recherches pendant les conversations.

import os
from mistralai import Mistral

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

# Créer une bibliothèque
library = client.files.upload(
    file=open("company-handbook.pdf", "rb"),
    purpose="retrieval",
)
print(f"File uploaded: {library.id}")
Étape 2 : attendre le traitement

Étape 2 : attendre le traitement

Nous traitons et indexons le document pour la recherche. Vérifiez son statut avant de faire une requête.

import time

# Attendre que le fichier soit traité
while True:
    file_info = client.files.retrieve(file_id=library.id)
    if file_info.status == "processed":
        print("File ready for retrieval")
        break
    print(f"Status: {file_info.status}... waiting")
    time.sleep(2)

Nous traitons en général les petits fichiers (moins de 10 pages) en moins de 30 secondes. Les documents volumineux peuvent prendre quelques minutes.

Étape 3 : interroger avec le RAG

Étape 3 : interroger avec le RAG

Posez une question en incluant la référence du fichier : le modèle va d’abord extraire les passages pertinents avant de répondre.

response = client.chat.complete(
    model="mistral-medium-latest",
    messages=[
        {
            "role": "user",
            "content": "What is our company's remote work policy?",
        }
    ],
    documents=[{"type": "file", "id": library.id}],
)

print(response.choices[0].message.content)
Étape 4 : vérifier

Étape 4 : vérifier

La réponse doit s’appuyer sur les informations contenues dans votre document téléchargé, et non sur des connaissances générales. Par exemple, si vous avez téléchargé un manuel d’entreprise et posé une question sur la politique de télétravail, vous pouvez obtenir un extrait comme :

« Selon le manuel, les employés peuvent télétravailler jusqu’à 3 jours par semaine avec l’accord du responsable. Les demandes de télétravail doivent être soumises via le portail RH… »

Vérifiez :

  • La présence de détails, de noms ou de politiques spécifiques extraits du document
  • Que la réponse s'appuie sur le contenu téléchargé et non sur des conseils génériques
  • Une réduction du taux d’hallucinations par rapport à la même question sans documents

Si la réponse paraît générique, vérifiez que le statut du fichier est processed et que le paramètre documents est bien inclus dans votre requête.

Et après

Et après