Cette fonctionnalité est éligible à la Zero Data Retention (ZDR). Lorsque votre organisation dispose d'un accord ZDR, les données envoyées via cette fonctionnalité ne sont pas stockées après le retour de la réponse de l'API.
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 pour les modèles avec une fenêtre de contexte de 200k 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 de requête.
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 contenant des PDF volumineux peuvent également échouer avant d'atteindre la limite de pages, même en utilisant la Files API. Essayez de diviser le document en sections ; pour les fichiers volumineux, puisque chaque page est traitée comme une image, le sous-échantillonnage des images intégrées peut également aider.
Étant donné que 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.
La prise en charge des PDF est disponible sur l'API Claude, Claude Platform sur AWS, Amazon Bedrock (voir Prise en charge des PDF sur Amazon Bedrock), Vertex AI et Microsoft Foundry. Tous les modèles actifs prennent en charge le traitement des PDF.
Lorsque vous utilisez la prise en charge des PDF via l'API Converse de 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 citations activées, l'API se rabat sur 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 Claude ne voit pas les images ou les graphiques dans vos PDF lors de l'utilisation de l'API Converse, vous devez probablement activer l'indicateur de citations. Sans celui-ci, Converse se rabat sur l'extraction de texte basique uniquement.
Il s'agit d'une contrainte connue de 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 autres que PDF comme les fichiers .csv, .xlsx, .docx, .md ou .txt, consultez Travailler avec d'autres formats de fichiers.
Commençons par un exemple simple utilisant l'API Messages. Vous pouvez fournir des PDF à Claude de trois manières :
documentfile_id provenant de la Files APISur Amazon Bedrock et Vertex AI, seules les sources encodées en base64 sont actuellement disponibles.
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-4-8",
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)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).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-4-8",
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 :
client = anthropic.Anthropic()
# Téléverser le fichier PDF
with open("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-4-8",
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 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 la prise en charge 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 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 pour améliorer les performances sur les requêtes répétées :
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
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."},
],
}
],
)Utilisez l'API Message Batches pour les flux de travail à grand volume :
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "doc1",
"params": {
"model": "claude-opus-4-8",
"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."},
],
}
],
},
}
]
)Explorez des exemples pratiques de traitement de PDF dans la recette du cookbook.
Consultez la documentation complète de l'API pour la prise en charge des PDF.
Was this page helpful?