This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Vous pouvez poser des questions à Claude sur n'importe quel texte, image, graphique et tableau dans les PDF que vous fournissez. Quelques exemples de cas d'usage :
Claude fonctionne avec n'importe quel PDF standard. Assurez-vous que votre taille de requête répond à ces exigences :
| Exigence | Limite |
|---|---|
| Taille maximale de la requête | 32 MB (varie selon la plateforme) |
| Nombre maximum de pages par requête | 600 (100 pour les modèles avec une fenêtre de contexte de 200k tokens) |
| Format | PDF standard (sans mots de passe/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 grands PDF, envisagez de télécharger avec l'API Files et de référencer par file_id pour garder les charges utiles de requête petites.
Les PDF denses (nombreuses pages en petite police, tableaux complexes ou graphiques lourds) peuvent remplir la fenêtre de contexte avant d'atteindre la limite de pages. Les requêtes avec de grands PDF peuvent également échouer avant d'atteindre la limite de pages, même en utilisant l'API Files. Essayez de diviser le document en sections ; pour les fichiers volumineux, puisque chaque page est traitée comme une image, la réduction de la résolution des images intégrées peut également aider.
Puisque le support des PDF repose sur les capacités de vision de Claude, il est soumis aux mêmes limitations et considérations que les autres tâches de vision.
Le support des PDF est actuellement pris en charge via l'accès direct à l'API et Google Vertex AI. Tous les modèles actifs prennent en charge le traitement des PDF.
Le support des PDF est maintenant disponible sur Amazon Bedrock avec les considérations suivantes :
Lors de l'utilisation du support des PDF via l'API Converse d'Amazon Bedrock, il existe deux modes distincts de traitement des documents :
Important : Pour accéder aux capacités complètes de compréhension visuelle des PDF de Claude dans l'API Converse, vous devez activer les citations. Sans les citations activées, l'API revient à l'extraction de texte basique uniquement. En savoir plus sur l'utilisation des citations.
Converse Document Chat (Mode original - Extraction de texte uniquement)
Claude PDF Chat (Nouveau mode - Compréhension visuelle complète)
Si les clients signalent que Claude ne voit pas les images ou graphiques dans leurs PDF lors de l'utilisation de l'API Converse, ils devront probablement activer le drapeau des citations. Sans cela, Converse revient à l'extraction de texte basique uniquement.
C'est une contrainte connue avec l'API Converse. Pour les applications qui nécessitent une analyse visuelle des PDF sans citations, envisagez d'utiliser l'API InvokeModel à la place.
Pour les fichiers non-PDF comme .csv, .xlsx, .docx, .md ou .txt, voir Travailler avec d'autres formats de fichiers.
Commençons par un exemple simple en utilisant l'API Messages. Vous pouvez fournir des PDF à Claude de trois façons :
documentfile_id de l'API FilesL'approche la plus simple est de référencer un PDF directement à partir d'une URL :
Si vous devez envoyer des PDF à partir de votre système local ou lorsqu'une URL n'est pas disponible :
Pour les PDF que vous utiliserez à plusieurs reprises, ou lorsque vous souhaitez éviter les frais généraux d'encodage, utilisez l'API Files :
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 référençant le contenu du PDF si pertinent.
Claude peut référencer à la fois le contenu textuel et visuel lorsqu'il répond. Vous pouvez améliorer davantage les performances en intégrant le support des PDF avec :
Le nombre de tokens d'un fichier PDF dépend du texte total extrait du document ainsi que du nombre de pages :
Vous pouvez utiliser le comptage des tokens pour estimer les coûts pour vos PDF spécifiques.
Suivez ces meilleures pratiques pour des résultats optimaux :
Pour le traitement à haut volume, considérez ces approches :
Mettez en cache les PDF pour améliorer les performances sur les requêtes répétées :
Utilisez l'API Message Batches pour les flux de travail à haut volume :
Explorez des exemples pratiques de traitement PDF dans la recette du cookbook.
Was this page helpful?
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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)import base64
import httpx
# First, load and encode the 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).content).decode("utf-8")
# Alternative: Load from a local file
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Send to Claude using base64 encoding
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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)client = anthropic.Anthropic()
# Upload the PDF file
with open("document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Use the uploaded file in a message
message = client.beta.messages.create(
model="claude-opus-4-7",
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)client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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": "Analyze this document."},
],
}
],
)client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "doc1",
"params": {
"model": "claude-opus-4-7",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{"type": "text", "text": "Summarize this document."},
],
}
],
},
}
]
)Consultez la documentation complète de l'API pour la prise en charge des PDF.