Esta función es elegible para Zero Data Retention (ZDR). Cuando tu organización tiene un acuerdo de ZDR, los datos enviados a través de esta función no se almacenan después de que se devuelve la respuesta de la API.
Puedes preguntarle a Claude sobre cualquier texto, imagen, gráfico y tabla en los PDF 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 aplican a toda la carga útil de la solicitud, incluido cualquier otro contenido enviado junto con los PDF. Para PDF grandes, considera cargarlos con la Files API y referenciarlos mediante file_id para mantener pequeñas las cargas útiles de las solicitudes.
Los PDF densos (muchas páginas con fuente pequeña, tablas complejas o gráficos pesados) pueden llenar la "context window" (ventana de contexto) antes de alcanzar el límite de páginas. Las solicitudes con PDF grandes también pueden fallar antes de alcanzar el límite de páginas, incluso al usar la Files API. Intenta dividir el documento en secciones; para archivos grandes, dado que cada página se procesa como una imagen, reducir la resolución de las imágenes incrustadas también puede ayudar.
Dado que el soporte para PDF depende de las capacidades de visión de Claude, está sujeto a las mismas limitaciones y consideraciones que otras tareas de visión.
El soporte para PDF está disponible en la API de Claude, Claude Platform en AWS, Amazon Bedrock (consulta Soporte para PDF en Amazon Bedrock), Vertex AI y Microsoft Foundry. Todos los modelos activos admiten el procesamiento de PDF.
Al usar el soporte para PDF a través de la Converse API de Bedrock, existen dos modos distintos de procesamiento de documentos:
Importante: Para acceder a las capacidades completas de comprensión visual de PDF de Claude en la Converse API, debes habilitar las citas. Sin las citas habilitadas, la API recurre únicamente a la extracción básica de texto. Obtén más información sobre cómo trabajar con citas.
Converse Document Chat (Modo original - Solo extracción de texto)
Claude PDF Chat (Modo nuevo - Comprensión visual completa)
Si Claude no está viendo imágenes o gráficos en tus PDF al usar la Converse API, probablemente necesites habilitar el indicador de citas. Sin él, Converse recurre únicamente a la extracción básica de texto.
Esta es una restricción conocida de la Converse API. Para aplicaciones que requieren análisis visual de PDF sin citas, considera usar la InvokeModel API en su lugar.
Para archivos que no son PDF, como archivos .csv, .xlsx, .docx, .md o .txt, consulta Trabajar con otros formatos de archivo.
Comencemos con un ejemplo simple usando la Messages API. Puedes proporcionar PDF a Claude de tres maneras:
documentfile_id de la Files APIEn Amazon Bedrock y Vertex AI, actualmente solo están disponibles las fuentes codificadas en base64.
El enfoque más simple es referenciar un PDF directamente desde una 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 necesitas enviar PDF desde tu sistema local o cuando no hay una URL disponible:
import base64
import httpx
# Primero, carga y codifica el 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")
# Alternativa: cargar desde un archivo local
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Envíalo a Claude usando codificación 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)Para PDF que usarás repetidamente, o cuando quieras evitar la sobrecarga de codificación, usa la Files API:
client = anthropic.Anthropic()
# Sube el archivo PDF
with open("document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Usa el archivo subido en un mensaje
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)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 al contenido textual como visual cuando responde. Puedes mejorar aún más el rendimiento integrando el soporte para 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 el conteo de tokens para estimar los costos de tus PDF específicos.
Sigue estas mejores prácticas para obtener resultados óptimos:
Para procesamiento de alto volumen, considera estos enfoques:
Almacena en caché los PDF para mejorar el rendimiento en consultas repetidas:
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."},
],
}
],
)Usa la Message Batches API para flujos de trabajo de alto volumen:
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."},
],
}
],
},
}
]
)Explora ejemplos prácticos de procesamiento de PDF en la receta del cookbook.
Consulta la documentación completa de la API para el soporte de PDF.
Was this page helpful?