Bibliothèques
Les bibliothèques sont des bases de connaissances persistantes que vous pouvez alimenter avec des documents et connecter à vos agents pour l’augmentation des capacités de génération par récupération (RAG). Importez des PDF, des articles ou tout autre document, et vos agents pourront les explorer à la demande.
Cette page explique comment créer des bibliothèques, importer des documents, vérifier le statut de traitement et gérer les accès — le tout via l’API.
Vous pouvez également utiliser des bibliothèques créées dans Vibe : l’identifiant de la bibliothèque apparaît dans l’URL (https://chat.mistral.ai/libraries/<library_id>). Pour permettre à un agent d’accéder à une bibliothèque Vibe, vous devez être Admin de l’Organisation 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éez une nouvelle bibliothèque en renseignant un nom et éventuellement une description.
new_library = client.beta.libraries.create(name="Mistral Models", description="Une bibliothèque simple contenant des informations sur les modèles Mistral.")La réponse contient des métadonnées comme generated_name et generated_description — celles-ci sont mises à jour automatiquement à mesure que vous ajoutez des fichiers.
Une nouvelle bibliothèque commence vide. Vous pouvez lister ses documents pour vérifier :
doc_list = client.beta.libraries.documents.list(library_id=new_library.id).data
for doc in doc_list:
print(f"{doc.name}: {doc.extension} avec {doc.number_of_pages} pages.")
print(f"{doc.summary}")Lister les bibliothèques
Listez toutes les bibliothèques de votre espace de travail avec leur nombre de documents.
libraries = client.beta.libraries.list().data
for library in libraries:
print(library.name, f"avec {library.nb_documents} documents.")Importer des documents
Importez un document en renseignant l’identifiant de la bibliothèque et le fichier.
from mistralai.client.models import File
# Import d’un 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
Listez les documents d’une bibliothèque spécifique :
if len(libraries) == 0:
print("Aucune bibliothèque trouvée.")
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} avec {doc.number_of_pages} pages.")
print(f"{doc.summary}")Statut du document
Après avoir importé un document, vous pouvez vérifier son statut de traitement.
# Vérifier le statut du document
status = client.beta.libraries.documents.status(library_id=new_library.id, document_id=uploaded_doc.id)
print(status)
# Attendre la fin du traitement
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)Le statut est Running tant que le document est en cours de traitement, puis Completed une fois prêt.
{
"document_id": "424fdcb8-3c11-478c-a651-9637be8b4fc4",
"processing_status": "Running"
}Récupérer les informations d’un document
Récupérez toutes les métadonnées d’un document une fois son traitement terminé.
# Obtenir les infos du document une fois traité
uploaded_doc = client.beta.libraries.documents.get(library_id=new_library.id, document_id=uploaded_doc.id)Récupérer le contenu d’un document
Extrait le texte de n’importe quel document d’une bibliothèque.
extracted_text = client.beta.libraries.documents.text_content(library_id=new_library.id, document_id=uploaded_doc.id)
# Il existe aussi extracted_text signed_url et raw signed_url
print(extracted_text)Suppression 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)Gérer les accès
Vous pouvez contrôler qui accède à chaque bibliothèque. La gestion des accès se fait à partir de :
org_id— l’identifiant de votre organisation.level— le niveau d’accès :"Viewer"ou"Editor".share_with_uuid— l’identifiant de l’entité à laquelle vous partagez (disponible 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 propriétaire de la bibliothèque pour la partager.
- Un propriétaire ne peut pas supprimer son propre accès.
- Vous devez être propriétaire de la bibliothèque pour supprimer l’accès de quelqu’un d’autre.
- Les « viewers » ne peuvent pas modifier les bibliothèques. Les « editors », si.
Étant donnée une bibliothèque, liste toutes les entités qui y ont accès ainsi que leur niveau d'accès.
accesses_list = client.beta.libraries.accesses.list(library_id=new_library.id)Pour toutes les informations techniques, consultez la documentation de l’API Bibliothèques.
Connecter des bibliothèques à des agents
La bibliothèque de documents est un outil agent intégré qui permet aux agents d’effectuer des recherches dans vos bibliothèques. Pour l’utiliser, créez un agent muni de l’outil document_library et transmettez les library_ids auxquelles il aura accès.

library_agent = client.beta.agents.create(
model="mistral-medium-latest",
name="Document Library Agent",
description="Agent utilisé pour accéder aux documents de la bibliothèque de documents.",
instructions="Utilisez l’outil bibliothèque pour accéder à des documents externes.",
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 identifiant d’agent. Utilisez-le pour démarrer une conversation.
Conversations avec un agent Bibliothèque de documents
Une fois l’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
La réponse contient deux types d’entrée :
-
tool.execution— l’outil Document Library a effectué une recherche. Contient lename, les timestamps (created_at,completed_at) et un identifiant uniqueid. -
message.output— la réponse de l’agent, basée sur les documents retrouvés. Le champcontentest une liste de blocs qui peuvent être de typetext(la réponse proprement dite) outool_reference(citations qui référencent les documents source). Les citations garantissent la vérifiabilité des sorties.
L’objet usage donne les statistiques de jetons, dont les connector_tokens utilisés lors de la recherche dans la bibliothèque.
L’outil recherche web fonctionne aussi par référence. Pour en savoir plus sur les citations, voir le guide sur les citations.
Aller plus loin
- Guide de démarrage RAG : construisez un pipeline de génération augmentée par récupération (RAG) de zéro.
- Embeddings : générez des vecteurs d'embeddings pour des pipelines RAG personnalisés.
- Outils d'agent : explorez d'autres outils intégrés comme la recherche web, Code Interpreter et la génération d'images.
