Este recurso é elegível para Zero Data Retention (ZDR). Quando sua organização possui um acordo de ZDR, os dados enviados por meio deste recurso não são armazenados após a resposta da API ser retornada.
Você pode perguntar ao Claude sobre qualquer texto, imagens, gráficos e tabelas em PDFs que você 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 para modelos com uma janela de contexto de 200k 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.
PDFs densos (muitas páginas com fonte pequena, tabelas complexas ou gráficos pesados) podem preencher a janela de contexto antes de atingir o limite de páginas. Requisições com PDFs grandes também podem falhar antes de atingir o limite de páginas, mesmo ao usar a Files API. Tente dividir o documento em seções; para arquivos grandes, como cada página é processada como uma imagem, reduzir a resolução das imagens incorporadas também pode ajudar.
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.
O suporte a PDF está disponível na Claude API, Claude Platform on AWS, Amazon Bedrock (consulte Suporte a PDF no Amazon Bedrock), Vertex AI e Microsoft Foundry. Todos os modelos ativos suportam processamento de PDF.
Ao usar o suporte a PDF através da Converse API do Bedrock, existem dois modos distintos de processamento de documentos:
Importante: Para acessar as capacidades completas de compreensão visual de PDF do Claude na Converse API, você deve habilitar citações. Sem citações habilitadas, a API recorre apenas à extração básica de texto. Saiba mais sobre como trabalhar com citações.
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 em 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.
Esta é uma restrição conhecida da Converse API. Para aplicações que requerem análise visual de PDF sem citações, considere usar a InvokeModel API em vez disso.
Para arquivos que não são PDF, como arquivos .csv, .xlsx, .docx, .md ou .txt, consulte Trabalhando com outros formatos de arquivo.
Vamos começar com um exemplo simples usando a Messages API. Você pode fornecer PDFs ao Claude de três maneiras:
documentfile_id da Files APINo Amazon Bedrock e Vertex AI, apenas fontes codificadas em base64 estão disponíveis atualmente.
A abordagem mais simples é referenciar um PDF diretamente de uma 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)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).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-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 PDFs que você usará repetidamente, ou quando quiser evitar a sobrecarga de codificação, use a Files API:
client = anthropic.Anthropic()
# Faça upload do arquivo PDF
with open("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-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)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, bem como 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 de alto volume, considere estas abordagens:
Armazene PDFs em cache para melhorar o desempenho em 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."},
],
}
],
)Use a Message Batches API para fluxos de trabalho de alto 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."},
],
}
],
},
}
]
)Explore exemplos práticos de processamento de PDF na receita do cookbook.
Consulte a documentação completa da API para suporte a PDF.
Was this page helpful?