Bibliothèques

Les Bibliothèques sont des bases de connaissances persistantes que vous pouvez remplir avec des documents et connecter à vos agents pour une génération enrichie par récupération (RAG) intégrée. Téléchargez des PDF, des articles ou tout autre document, et vos agents pourront les rechercher à la demande.

Cette page explique comment créer des Bibliothèques, télécharger des documents, indexer des pages web, vérifier l’état du traitement et contrôler l’accès.

Astuce

Vous pouvez également utiliser les Bibliothèques créées dans Vibe : l'ID de la Bibliothèque est visible dans l'URL (https://chat.mistral.ai/libraries/<library_id>). Pour qu'un agent accède à une Bibliothèque Vibe, vous devez être admin Org et la partager avec l'Organisation. L'inverse fonctionne aussi : créez une Bibliothèque via l'API et partagez-la avec votre équipe dans Vibe.

Créer une Bibliothèque

Créer une Bibliothèque

Créez une nouvelle Bibliothèque en fournissant un nom et une description facultative.

new_library = client.beta.libraries.create(name="Mistral Models", description="A simple library with information about Mistral models.")

La réponse inclut des métadonnées comme generated_name et generated_description — celles-ci sont mises à jour automatiquement lorsque vous ajoutez des fichiers.

Une nouvelle Bibliothèque commence vide. Vous pouvez lister ses documents pour le confirmer :

doc_list = client.beta.libraries.documents.list(library_id=new_library.id).data
for doc in doc_list:
    print(f"{doc.name}: {doc.extension} with {doc.number_of_pages} pages.")
    print(f"{doc.summary}")
Lister les Bibliothèques

Lister les Bibliothèques

Listez toutes les Bibliothèques de votre espace de travail ainsi que le nombre de documents qu'elles contiennent.

libraries = client.beta.libraries.list().data
for library in libraries:
    print(library.name, f"with {library.nb_documents} documents.")
Téléchargement de documents

Téléchargement de documents

Téléchargez un document en fournissant l'ID de la Bibliothèque et le fichier.

from mistralai.client.models import File

# Upload document
file_path = "mistral7b.pdf"
with open(file_path, "rb") as file_content:
    uploaded_doc = client.beta.libraries.documents.upload(
        library_id=new_library.id,
        file=File(fileName="mistral7b.pdf", content=file_content),
    )
Lister les documents

Lister les documents

Lista les documents d'une Bibliothèque spécifique :

if len(libraries) == 0:
    print("No libraries found.")
else:
    doc_list = client.beta.libraries.documents.list(library_id=libraries[0].id).data
    for doc in doc_list:
        print(f"{doc.name}: {doc.extension} with {doc.number_of_pages} pages.")
        print(f"{doc.summary}")
État du document

État du document

Après avoir téléchargé un document, vous pouvez vérifier son état de traitement.

# Check status document
status = client.beta.libraries.documents.status(library_id=new_library.id, document_id=uploaded_doc.id)
print(status)

# Waiting for process to finish
import time
while status.processing_status == "Running":
    status = client.beta.libraries.documents.status(library_id=new_library.id, document_id=uploaded_doc.id)
    time.sleep(1)
print(status)

L'état est Running pendant le traitement du document et Completed une fois qu'il est prêt.

{
  "document_id": "424fdcb8-3c11-478c-a651-9637be8b4fc4",
  "processing_status": "Running"
}
Obtenir les informations du document

Obtenir les informations du document

Récupérez les métadonnées complètes d'un document une fois le traitement terminé.

# Get document info once processed
uploaded_doc = client.beta.libraries.documents.get(library_id=new_library.id, document_id=uploaded_doc.id)
Extraire le contenu d'un document

Extraire le contenu d'un document

Extrayez le contenu textuel de tout document dans une Bibliothèque.

extracted_text = client.beta.libraries.documents.text_content(library_id=new_library.id, document_id=uploaded_doc.id)
# There is also extracted_text signed_url and raw signed_url
print(extracted_text)
Indexation d’un site web

Indexation d’un site web

Vous pouvez créer une Bibliothèque directement à partir d’un site web à l’aide du crawler web ciblé. Ce dernier récupère le contenu textuel de l’URL de départ et suit les liens enfants jusqu’à une profondeur configurable.

Note

Depuis Mistral Studio, le traitement des documents est facturé à l’usage, comme lorsque vous utilisez l’API Mistral.

Pour indexer un site web depuis Studio :

  1. Cliquez sur Indexer un site web.
  2. Saisissez un Nom de Bibliothèque et l’URL du site web à explorer.
  3. Cliquez éventuellement sur Paramètres avancés pour configurer l’exploration.
  4. Cliquez sur Démarrer l’indexation.

Le crawler extrait uniquement le contenu textuel. Les images et graphiques ne sont pas indexés. Pour inclure du contenu visuel, téléchargez la page et téléchargez-la sous forme de fichier.

Paramètres avancés d’indexation

Paramètres avancés d’indexation

ParamètreDescription
Nombre maximal de pagesNombre maximal de pages à explorer à partir de l'URL initiale. Plage : 1 à 10000.
Profondeur maximaleNombre de sauts de liens à suivre depuis l’URL de départ. Plage : 1–10. Valeur par défaut : 10.
Règles de filtrage des URLRègles d’inclusion ou d’exclusion qui contrôlent les URL explorées.
Fréquence de rafraîchissementFréquence de réindexation automatique : Aucune, Horaires, Quotidien, Hebdomadaire ou Mensuel.
Récupération basée sur un navigateurUtilise un navigateur sans interface pour rendre les pages riches en JavaScript avant d’extraire le contenu. Désactivé par défaut.
Supprimer des Bibliothèques et des documents

Supprimer des Bibliothèques et des documents

Supprimez des Bibliothèques ou des documents individuels selon vos besoins.

deleted_library = client.beta.libraries.delete(library_id=new_library.id)
Contrôler l'accès

Contrôler l'accès

Vous pouvez gérer qui a accès à chaque Bibliothèque. Le contrôle d'accès utilise ces paramètres :

  • org_id — l'ID de votre organisation.
  • level — le niveau d'accès : "Viewer" ou "Editor".
  • share_with_uuid — l'ID de l'entité avec laquelle vous partagez (retrouvez ces ID dans votre console et les paramètres de la plateforme).
  • share_with_type — le type d'entité : "User", "Workspace" ou "Org".

Quelques règles :

  • Vous devez être le propriétaire de la Bibliothèque pour la partager.
  • Un propriétaire ne peut pas supprimer son propre accès.
  • Vous devez être le propriétaire de la Bibliothèque pour supprimer l'accès de quelqu'un d'autre.
  • LesVisionneurs ne peuvent pas modifier les Bibliothèques. Les Éditeurs le peuvent.

Étant donnée une bibliothèque, listez toutes les entités ayant accès ainsi que leur niveau d’accès.

accesses_list = client.beta.libraries.accesses.list(library_id=new_library.id)

Pour plus de détails sur l'API, voir la référence de l'API Bibliothèques.

Connecter des Bibliothèques à des agents

Connecter des Bibliothèques à des agents

Bibliothèque de documents est un outil d’agent intégré qui permet aux agents de rechercher dans vos Bibliothèques. Pour l'utiliser, créez un agent avec l'outil document_library et passez les library_ids auxquels il doit accéder.

graphique document_library
library_agent = client.beta.agents.create(
    model="mistral-medium-latest",
    name="Document Library Agent",
    description="Agent used to access documents from the document library.",
    instructions="Use the  library tool to access external documents.",
    tools=[{"type": "document_library", "library_ids": [new_library.id]}],
    completion_args={
        "temperature": 0.3,
        "top_p": 0.95,
    }
)

Lorsque vous créez un agent, la réponse inclut un ID d'agent. Utilisez-le pour démarrer une conversation.

Conversations avec un agent de Bibliothèque de documents

Conversations avec un agent de Bibliothèque de documents

Une fois votre agent prêt, vous pouvez interroger votre Bibliothèque à tout moment :

response = client.beta.conversations.start(
    agent_id=library_agent.id,
    inputs="How does the vision encoder for pixtral 12b work"
)
Comprendre la réponse

Comprendre la réponse

La réponse contient deux types d'entrées :

  • tool.execution — l'outil Bibliothèque de documents a effectué une recherche. Inclut name, des horodatages (created_at, completed_at) et un identifiant unique id.

  • message.output — la réponse de l'agent, basée sur les documents trouvés. Le champ content est une liste de fragments qui peuvent être de type text (la réponse proprement dite) ou tool_reference (citations renvoyant aux documents sources). Les citations sont utiles pour des résultats vérifiables et traçables.

L'objet usage affiche le nombre de token, y compris les connector_tokens consommés par la recherche dans la Bibliothèque.

Astuce

Aller plus loin

  • Guide de démarrage RAG : créez un pipeline de génération enrichie par récupération à partir de zéro.
  • Embeddings : générez des embeddings vectoriels pour des pipelines RAG personnalisés.
  • Outils d'agent : explorez d'autres outils intégrés comme la recherche web, l'interpréteur de code et la génération d'images.