Was this page helpful?
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.
Puedes preguntarle a Claude sobre cualquier texto, imágenes, gráficos y tablas en los PDFs que proporciones. Algunos casos de uso de ejemplo:
Claude funciona con cualquier PDF estándar. Asegúrate de que el tamaño de tu solicitud cumpla con estos requisitos:
| Requisito | Límite |
|---|---|
| Tamaño máximo de solicitud | 32 MB (varía según la plataforma) |
| Máximo de páginas por solicitud | 600 (100 para modelos con una ventana de contexto de 200k tokens) |
| Formato | PDF estándar (sin contraseñas/cifrado) |
Ambos límites se aplican a toda la carga útil de la solicitud, incluido cualquier otro contenido enviado junto con los PDFs. Para PDFs grandes, considera cargar con la API de Archivos y hacer referencia por file_id para mantener las cargas útiles de solicitud pequeñas.
Los PDFs densos (muchas páginas con fuente pequeña, tablas complejas o gráficos pesados) pueden llenar la ventana de contexto antes de alcanzar el límite de páginas. Las solicitudes con PDFs grandes también pueden fallar antes de alcanzar el límite de páginas, incluso cuando se usa la API de Archivos. Intenta dividir el documento en secciones; para archivos grandes, ya que cada página se procesa como una imagen, la reducción de resolución de imágenes incrustadas también puede ayudar.
Dado que la compatibilidad con PDF se basa en las capacidades de visión de Claude, está sujeta a las mismas limitaciones y consideraciones que otras tareas de visión.
La compatibilidad con PDF actualmente se admite a través del acceso directo a la API y Google Vertex AI. Todos los modelos activos admiten procesamiento de PDF.
La compatibilidad con PDF ahora está disponible en Amazon Bedrock con las siguientes consideraciones:
Al usar la compatibilidad con PDF a través de la API Converse de Amazon Bedrock, hay dos modos distintos de procesamiento de documentos:
Importante: Para acceder a las capacidades completas de comprensión visual de PDF de Claude en la API Converse, debes habilitar las citas. Sin citas habilitadas, la API vuelve a la extracción de texto básica solamente. Obtén más información sobre trabajar con citas.
Converse Document Chat (Modo original - Solo extracción de texto)
Claude PDF Chat (Nuevo modo - Comprensión visual completa)
Si los clientes reportan que Claude no ve imágenes o gráficos en sus PDFs al usar la API Converse, probablemente necesiten habilitar la bandera de citas. Sin ella, Converse vuelve a la extracción de texto básica solamente.
Esta es una restricción conocida con la API Converse. Para aplicaciones que requieren análisis visual de PDF sin citas, considera usar la API InvokeModel en su lugar.
Para archivos que no sean PDF como .csv, .xlsx, .docx, .md o .txt, consulta Trabajar con otros formatos de archivo.
Comencemos con un ejemplo simple usando la API de Mensajes. Puedes proporcionar PDFs a Claude de tres formas:
documentfile_id de la API de ArchivosEl enfoque más simple es hacer referencia a un PDF directamente desde una URL:
Si necesitas enviar PDFs desde tu sistema local o cuando una URL no está disponible:
Para PDFs que usarás repetidamente, o cuando quieras evitar la sobrecarga de codificación, usa la API de Archivos:
Cuando envías un PDF a Claude, ocurren los siguientes pasos:
El sistema extrae el contenido del documento.
Claude analiza tanto el texto como las imágenes para comprender mejor el documento.
Claude responde, haciendo referencia al contenido del PDF si es relevante.
Claude puede hacer referencia tanto a contenido textual como visual cuando responde. Puedes mejorar aún más el rendimiento integrando la compatibilidad con PDF con:
El recuento de tokens de un archivo PDF depende del texto total extraído del documento así como del número de páginas:
Puedes usar conteo de tokens para estimar costos para tus PDFs específicos.
Sigue estas mejores prácticas para obtener resultados óptimos:
Para procesamiento de alto volumen, considera estos enfoques:
Almacena en caché PDFs para mejorar el rendimiento en consultas repetidas:
Usa la API de Message Batches para flujos de trabajo de alto volumen:
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."},
],
}
],
},
}
]
)Consulta la documentación completa de la API para soporte de PDF.