Prise en charge des PDF
Traitez des PDF avec Claude : extrayez du texte, analysez des graphiques et comprenez le contenu visuel de vos documents.
Vous pouvez interroger Claude sur n'importe quel texte, image, graphique ou tableau contenu dans les PDF que vous fournissez. Quelques exemples de cas d'utilisation :
- Analyser des rapports financiers et comprendre des graphiques/tableaux
- Extraire des informations clés de documents juridiques
- Aider à la traduction de documents
- Convertir les informations d'un document en formats structurés
Avant de commencer
Vérifier les exigences relatives aux PDF
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 ni chiffrement) |
Les 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 l'API Files et de les référencer par file_id afin de limiter 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.
Plateformes et modèles pris en charge
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.
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 :
Modes de traitement des documents
-
Converse Document Chat (mode d'origine - extraction de texte uniquement)
- Fournit une extraction de texte basique à partir des PDF
- Ne peut pas analyser les images, graphiques ou mises en page visuelles dans les PDF
- Utilise environ 1 000 tokens pour un PDF de 3 pages
- Utilisé automatiquement lorsque les citations ne sont pas activées
-
Claude PDF Chat (nouveau mode - compréhension visuelle complète)
- Fournit une analyse visuelle complète des PDF
- Peut comprendre et analyser les graphiques, diagrammes, images et mises en page visuelles
- Traite chaque page à la fois comme texte et comme image pour une compréhension complète
- Utilise environ 7 000 tokens pour un PDF de 3 pages
- Nécessite l'activation des citations dans l'API Converse
Principales limitations
- API Converse : L'analyse visuelle des PDF nécessite l'activation des citations. Il n'existe actuellement aucune option permettant d'utiliser l'analyse visuelle sans citations (contrairement à l'API InvokeModel).
- API InvokeModel : Offre un contrôle total sur le traitement des PDF sans citations imposées.
Problèmes courants
Si Claude ne voit pas les images ou les graphiques de 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.
Traiter des PDF avec Claude
Envoyer votre première requête PDF
Commencez par un exemple simple utilisant l'API Messages. Vous pouvez fournir des PDF à Claude de trois manières :
- Sous forme de référence URL vers un PDF hébergé en ligne
- Sous forme de PDF encodé en base64 dans des blocs de contenu
document - Par un
file_idprovenant de l'API Files
Option 1 : document PDF basé sur une URL
L'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-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-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
}
}Option 2 : document PDF encodé en base64
Si vous devez envoyer des PDF depuis votre système local ou lorsqu'aucune URL n'est disponible :
import base64
import httpx2
# Tout 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(
httpx2.get(pdf_url, follow_redirects=True).content
).decode("utf-8")
# Alternative : chargez 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-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)Option 3 : API Files
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 l'API Files :
client = anthropic.Anthropic()
# Téléverser le fichier PDF
with open("/path/to/document.pdf", "rb") as f:
file_upload = client.files.upload(file=("document.pdf", f, "application/pdf"))
# Utiliser le fichier téléversé dans un message
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
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)Fonctionnement de la prise en charge des PDF
Lorsque vous envoyez un PDF à Claude, les étapes suivantes se produisent :
Le système extrait le contenu du document.
- Le système convertit chaque page du document en image.
- Le texte de chaque page est extrait et fourni avec l'image de chaque page.
Claude analyse à la fois le texte et les images pour mieux comprendre le document.
- Les documents sont fournis sous forme de combinaison de texte et d'images pour l'analyse.
- Cela permet aux utilisateurs de demander des informations sur les éléments visuels d'un PDF, tels que les graphiques, les diagrammes et autres contenus non textuels.
Claude répond, en faisant référence au contenu du PDF si pertinent.
Claude peut faire référence au contenu textuel comme au contenu visuel lorsqu'il répond. Vous pouvez encore améliorer les performances en intégrant la prise en charge des PDF avec :
- Utiliser la mise en cache des prompts : pour améliorer les performances lors d'analyses répétées.
- Traiter des lots de documents : pour le traitement de documents à grand volume.
- Utilisation d'outils : pour extraire des informations spécifiques des documents afin de les utiliser comme entrées d'outils.
Estimer vos coûts
Le nombre de tokens d'un fichier PDF dépend du texte total extrait du document et du nombre de pages :
- Coûts en tokens de texte : chaque page utilise généralement entre 1 500 et 3 000 tokens selon la densité du contenu. La tarification standard de l'API s'applique, sans frais supplémentaires pour les PDF.
- Coûts en tokens d'image : comme chaque page est convertie en image, les mêmes calculs de coûts basés sur les images sont appliqués.
Vous pouvez utiliser le comptage de tokens pour estimer les coûts de vos PDF spécifiques.
Optimiser le traitement des PDF
Améliorer les performances
Suivez ces bonnes pratiques pour des résultats optimaux :
- Placez les PDF avant le texte dans vos requêtes
- Utilisez des polices standard
- Assurez-vous que le texte est clair et lisible
- Faites pivoter les pages dans la bonne orientation verticale
- Utilisez les numéros de page logiques (du lecteur PDF) dans les prompts
- Divisez les PDF volumineux en morceaux si nécessaire
- Activez la mise en cache des prompts pour les analyses répétées
Faire évoluer votre implémentation
Pour le traitement à grand volume, envisagez ces approches :
Utiliser la mise en cache des prompts
Mettez en cache les PDF avec la mise en cache des prompts pour améliorer les performances des requêtes répétées :
import base64
import httpx2
# Tout 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(
httpx2.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-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)Traiter des lots de documents
Utilisez l'API Message Batches pour traiter de nombreux PDF en une seule requête :
import base64
import httpx2
# Tout 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(
httpx2.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-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-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.
Étapes suivantes
Les capacités de vision de Claude lui permettent de comprendre et d'analyser des images, ouvrant des possibilités passionnantes d'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.
Compatibility
- Supported platforms
- Claude API
- Claude Platform on AWS
- Amazon Bedrock
- Google Cloud
- Microsoft Foundry
Was this page helpful?