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, vérifier l'état du traitement et contrôler l'accès — le tout via l'API.

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)
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.