Você pode perguntar ao Claude sobre qualquer texto, imagem, gráfico e tabela nos PDFs que fornecer. Alguns exemplos de casos de uso:
Claude funciona com qualquer PDF padrão. Certifique-se de que o tamanho da sua requisição atenda a estes requisitos:
| Requisito | Limite |
|---|---|
| Tamanho máximo da requisição | 32 MB (varia por plataforma) |
| Máximo de páginas por requisição | 600 (100 quando a janela de contexto da requisição for inferior a 1M de tokens) |
| Formato | PDF padrão (sem senhas/criptografia) |
Ambos os limites se aplicam a todo o payload da requisição, incluindo qualquer outro conteúdo enviado junto com os PDFs. Para PDFs grandes, considere fazer upload com a Files API e referenciar por file_id para manter os payloads de requisição pequenos.
Como o suporte a PDF depende das capacidades de visão do Claude, ele está sujeito às mesmas limitações e considerações que outras tarefas de visão.
Todos os modelos ativos suportam processamento de PDF. Para suporte a PDF através da Converse API do Amazon Bedrock, consulte Suporte a PDF no Amazon Bedrock.
Ao usar o suporte a PDF através da Converse API, parte do Claude no Amazon Bedrock (Opus 4.6 e anteriores), existem dois modos distintos de processamento de documentos:
Converse Document Chat (Modo original - Apenas extração de texto)
Claude PDF Chat (Novo modo - Compreensão visual completa)
Se o Claude não estiver vendo imagens ou gráficos nos seus PDFs ao usar a Converse API, você provavelmente precisa habilitar a flag de citações. Sem ela, a Converse recorre apenas à extração básica de texto.
Comece com um exemplo simples usando a Messages API. Você pode fornecer PDFs ao Claude de três maneiras:
documentfile_id da Files APIA abordagem mais simples é referenciar um PDF diretamente de uma 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)A resposta retorna a análise do Claude como blocos de texto em content, com o consumo de tokens em 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
}
}Se você precisar enviar PDFs do seu sistema local ou quando uma URL não estiver disponível:
import base64
import httpx
# Primeiro, carregue e codifique o 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: carregar de um arquivo local
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Envie para o Claude usando codificação 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 você usará repetidamente, ou quando quiser evitar a sobrecarga de codificação, use a Files API (beta):
client = anthropic.Anthropic()
# Faça upload do arquivo PDF
with open("/path/to/document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Use o arquivo enviado em uma mensagem
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)Quando você envia um PDF para o Claude, as seguintes etapas ocorrem:
O sistema extrai o conteúdo do documento.
Claude analisa tanto o texto quanto as imagens para compreender melhor o documento.
Claude responde, referenciando o conteúdo do PDF se relevante.
Claude pode referenciar tanto conteúdo textual quanto visual ao responder. Você pode melhorar ainda mais o desempenho integrando o suporte a PDF com:
A contagem de tokens de um arquivo PDF depende do total de texto extraído do documento e do número de páginas:
Você pode usar a contagem de tokens para estimar custos para seus PDFs específicos.
Siga estas práticas recomendadas para obter resultados ideais:
Para processamento em alto volume, considere estas abordagens:
Armazene PDFs em cache com o cache de prompt para melhorar o desempenho em consultas repetidas:
import base64
import httpx
# Primeiro, carregue e codifique o 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")
# Crie uma mensagem com o documento em cache
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)Use a Message Batches API para processar muitos PDFs em uma única requisição:
import base64
import httpx
# Primeiro, carregue e codifique o 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")
# Crie um lote de requisições que usam o 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)Os lotes são processados de forma assíncrona. Para verificar o progresso e recuperar resultados quando o processamento terminar, consulte Processamento em lote.
As capacidades de visão do Claude permitem que ele compreenda e analise imagens, abrindo possibilidades empolgantes para interação multimodal.
Explore exemplos práticos de processamento de PDF na receita do Claude Cookbook.
Consulte a documentação completa da API para suporte a PDF.
| Supported platforms |
|
|---|
Was this page helpful?