Puedes preguntarle a Claude sobre cualquier texto, imagen, gráfico y tabla 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 cuando la ventana de contexto de la solicitud es inferior a 1M de 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 subirlos con la Files API y referenciarlos por file_id para mantener pequeñas las cargas útiles de las solicitudes.
Debido a 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.
Todos los modelos activos admiten el procesamiento de PDF. Para el soporte de PDF a través de la Converse API de Amazon Bedrock, consulta Soporte de PDF en Amazon Bedrock.
Al usar el soporte de PDF a través de la Converse API, parte de Claude en Amazon Bedrock (Opus 4.6 y anteriores), existen dos modos distintos de procesamiento de documentos:
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 PDFs 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.
Comienza con un ejemplo simple usando la Messages API. Puedes proporcionar PDFs a Claude de tres maneras:
documentfile_id de la Files APIEl enfoque más simple es referenciar un PDF directamente desde una URL:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-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 respuesta devuelve el análisis de Claude como bloques de texto en content, con el consumo de tokens en usage:
{
"id": "msg_01Hfp8YuFjQ55VgWbpdHDehB",
"type": "message",
"role": "assistant",
"model": "claude-opus-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
}
}Si necesitas enviar PDFs 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, follow_redirects=True).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ía a Claude usando codificación base64
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-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)Para PDFs que usarás repetidamente, o cuando quieras evitar la sobrecarga de codificación, usa la Files API (beta):
client = anthropic.Anthropic()
# Sube el archivo PDF
with open("/path/to/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-5",
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 al 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 y del número de páginas:
Puedes usar el conteo de tokens para estimar los costos de tus PDFs específicos.
Sigue estas mejores prácticas para obtener resultados óptimos:
Para el procesamiento de alto volumen, considera estos enfoques:
Almacena en caché los PDFs con el almacenamiento en caché de prompts para mejorar el rendimiento en consultas repetidas:
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, follow_redirects=True).content
).decode("utf-8")
# Crea un mensaje con el documento almacenado en caché
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-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)Usa la Message Batches API para procesar muchos PDFs en una sola solicitud:
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, follow_redirects=True).content
).decode("utf-8")
# Crea un lote de solicitudes que usen el documento
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "my-first-request",
"params": {
"model": "claude-opus-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",
"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)Los lotes se procesan de forma asíncrona. Para verificar el progreso y recuperar los resultados una vez que finalice el procesamiento, consulta Procesamiento por lotes.
Las capacidades de visión de Claude le permiten comprender y analizar imágenes, abriendo posibilidades emocionantes para la interacción multimodal.
Explora ejemplos prácticos de procesamiento de PDF en la receta del Claude Cookbook.
Consulta la documentación completa de la API para el soporte de PDF.
| Supported platforms |
|
|---|
Was this page helpful?