Vous pouvez interroger Claude sur n'importe quel texte, image, graphique ou tableau contenu dans les PDF que vous fournissez. Voici quelques exemples de cas d'utilisation :
Claude fonctionne avec n'importe quel PDF standard. Assurez-vous que la taille de votre requête respecte ces exigences :
| Exigence | Limite |
|---|---|
| Taille maximale de la requête | 32 Mo (varie selon la plateforme) |
| Nombre maximal de pages par requête | 600 (100 lorsque la fenêtre de contexte de la requête est inférieure à 1 million de tokens) |
| Format | PDF standard (sans mot de passe/chiffrement) |
Ces deux limites s'appliquent à l'ensemble de la charge utile de la requête, y compris tout autre contenu envoyé avec les PDF. Pour les PDF volumineux, envisagez de les téléverser avec la Files API et de les référencer par file_id afin de réduire la taille des charges utiles des requêtes.
Comme la prise en charge des PDF repose sur les capacités de vision de Claude, elle est soumise aux mêmes limitations et considérations que les autres tâches de vision.
Tous les modèles actifs prennent en charge le traitement des PDF. Pour la prise en charge des PDF via l'API Converse d'Amazon Bedrock, consultez Prise en charge des PDF sur Amazon Bedrock.
Lorsque vous utilisez la prise en charge des PDF via l'API Converse, qui fait partie de Claude sur Amazon Bedrock (Opus 4.6 et versions antérieures), il existe deux modes distincts de traitement des documents :
Converse Document Chat (Mode original - Extraction de texte uniquement)
Claude PDF Chat (Nouveau mode - Compréhension visuelle complète)
Si Claude ne voit pas les images ou les graphiques dans vos PDF lorsque vous utilisez l'API Converse, vous devez probablement activer l'indicateur de citations. Sans celui-ci, Converse se limite à une extraction de texte basique.
Commencez par un exemple simple utilisant l'API Messages. Vous pouvez fournir des PDF à Claude de trois manières :
documentfile_id provenant de la Files APIL'approche la plus simple consiste à référencer un PDF directement depuis une URL :
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "url",
"url": "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf",
},
},
{"type": "text", "text": "What are the key findings in this document?"},
],
}
],
)
print(message.content)La réponse renvoie l'analyse de Claude sous forme de blocs de texte dans content, avec la consommation de tokens dans usage :
{
"id": "msg_01Hfp8YuFjQ55VgWbpdHDehB",
"type": "message",
"role": "assistant",
"model": "claude-opus-5",
"content": [
{
"type": "text",
"text": "This document is an addendum to the Claude 3 model card, reporting updated evaluation results. The key findings include..."
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 45000,
"output_tokens": 300
}
}Si vous devez envoyer des PDF depuis votre système local ou lorsqu'une URL n'est pas disponible :
import base64
import httpx
# D'abord, chargez et encodez le PDF
pdf_url = "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf"
pdf_data = base64.standard_b64encode(
httpx.get(pdf_url, follow_redirects=True).content
).decode("utf-8")
# Alternative : charger depuis un fichier local
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Envoyez à Claude en utilisant l'encodage base64
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{"type": "text", "text": "What are the key findings in this document?"},
],
}
],
)
print(message.content)Pour les PDF que vous utiliserez de manière répétée, ou lorsque vous souhaitez éviter la surcharge liée à l'encodage, utilisez la Files API (bêta) :
client = anthropic.Anthropic()
# Téléverser le fichier PDF
with open("/path/to/document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Utiliser le fichier téléversé dans un message
message = client.beta.messages.create(
model="claude-opus-5",
max_tokens=1024,
betas=["files-api-2025-04-14"],
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {"type": "file", "file_id": file_upload.id},
},
{"type": "text", "text": "What are the key findings in this document?"},
],
}
],
)
print(message.content)Lorsque vous envoyez un PDF à Claude, les étapes suivantes se produisent :
Le système extrait le contenu du document.
Claude analyse à la fois le texte et les images pour mieux comprendre le document.
Claude répond en faisant référence au contenu du PDF si cela est pertinent.
Claude peut faire référence au contenu textuel et visuel lorsqu'il répond. Vous pouvez améliorer davantage les performances en intégrant la prise en charge des PDF avec :
Le nombre de tokens d'un fichier PDF dépend du texte total extrait du document et du nombre de pages :
Vous pouvez utiliser le comptage de tokens pour estimer les coûts de vos PDF spécifiques.
Suivez ces bonnes pratiques pour obtenir des résultats optimaux :
Pour le traitement à grand volume, envisagez ces approches :
Mettez en cache les PDF avec la mise en cache des prompts pour améliorer les performances sur les requêtes répétées :
import base64
import httpx
# D'abord, chargez et encodez le PDF
pdf_url = "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf"
pdf_data = base64.standard_b64encode(
httpx.get(pdf_url, follow_redirects=True).content
).decode("utf-8")
# Créez un message avec le document mis en cache
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
"cache_control": {"type": "ephemeral"},
},
{
"type": "text",
"text": "Which model has the highest human preference win rates across each use-case?",
},
],
}
],
)
print(message.content)Utilisez l'API Message Batches pour traiter de nombreux PDF en une seule requête :
import base64
import httpx
# D'abord, chargez et encodez le PDF
pdf_url = "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf"
pdf_data = base64.standard_b64encode(
httpx.get(pdf_url, follow_redirects=True).content
).decode("utf-8")
# Créez un lot de requêtes qui utilisent le document
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "my-first-request",
"params": {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{
"type": "text",
"text": "Which model has the highest human preference win rates across each use-case?",
},
],
}
],
},
},
{
"custom_id": "my-second-request",
"params": {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{
"type": "text",
"text": "Extract 5 key insights from this document.",
},
],
}
],
},
},
]
)
print(message_batch)Les lots sont traités de manière asynchrone. Pour vérifier la progression et récupérer les résultats une fois le traitement terminé, consultez Traitement par lots.
Les capacités de vision de Claude lui permettent de comprendre et d'analyser des images, ouvrant des possibilités passionnantes pour l'interaction multimodale.
Explorez des exemples pratiques de traitement de PDF dans la recette du Claude Cookbook.
Consultez la documentation complète de l'API pour la prise en charge des PDF.
| Supported platforms |
|
|---|
Was this page helpful?