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.
Você pode fazer perguntas ao Claude sobre qualquer texto, imagens, gráficos e tabelas em PDFs que você forneça. Alguns casos de uso de exemplo:
Claude funciona com qualquer PDF padrão. Certifique-se de que seu tamanho de solicitação atenda a estes requisitos:
| Requisito | Limite |
|---|---|
| Tamanho máximo de solicitação | 32 MB (varia por plataforma) |
| Máximo de páginas por solicitação | 600 (100 para modelos com janela de contexto de 200k tokens) |
| Formato | PDF padrão (sem senhas/criptografia) |
Ambos os limites estão na carga útil de solicitação inteira, incluindo qualquer outro conteúdo enviado junto com PDFs. Para PDFs grandes, considere fazer upload com a Files API e referenciar por file_id para manter cargas úteis de solicitação pequenas.
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. Solicitaçõ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 de imagens incorporadas também pode ajudar.
Como o suporte a PDF depende das capacidades de visão do Claude, está sujeito às mesmas limitações e considerações que outras tarefas de visão.
O suporte a PDF é atualmente suportado via acesso direto à API e Google Vertex AI. Todos os modelos ativos suportam processamento de PDF.
O suporte a PDF agora está disponível no Amazon Bedrock com as seguintes considerações:
Ao usar suporte a PDF através da API Converse do Amazon Bedrock, existem dois modos distintos de processamento de documentos:
Importante: Para acessar as capacidades completas de compreensão visual de PDF do Claude na API Converse, você deve habilitar citações. Sem citações habilitadas, a API volta para extração de texto básica apenas. Saiba mais sobre trabalhar com citações.
Converse Document Chat (Modo original - Extração de texto apenas)
Claude PDF Chat (Novo modo - Compreensão visual completa)
Se clientes relatarem que Claude não está vendo imagens ou gráficos em seus PDFs ao usar a API Converse, eles provavelmente precisam habilitar a flag de citações. Sem ela, Converse volta para extração de texto básica apenas.
Esta é uma restrição conhecida com a API Converse. Para aplicações que requerem análise visual de PDF sem citações, considere usar a API InvokeModel em vez disso.
Para arquivos não-PDF como .csv, .xlsx, .docx, .md ou .txt, veja 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 APIA abordagem mais simples é referenciar um PDF diretamente de uma URL:
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)Se você precisar enviar PDFs do seu sistema local ou quando uma URL não estiver disponível:
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)Para PDFs que você usará repetidamente, ou quando quiser evitar overhead de codificação, use a Files API:
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)Quando você envia um PDF ao Claude, ocorrem as seguintes etapas:
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 conteúdo textual e visual ao responder. Você pode melhorar ainda mais o desempenho integrando suporte a PDF com:
A contagem de tokens de um arquivo PDF depende do texto total extraído do documento, bem como do número de páginas:
Você pode usar contagem de tokens para estimar custos para seus PDFs específicos.
Siga estas melhores práticas para resultados ideais:
Para processamento de alto volume, considere estas abordagens:
Armazene em cache PDFs para melhorar o desempenho em consultas repetidas:
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."},
],
}
],
)Use a API de Lotes de Mensagens 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-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."},
],
}
],
},
}
]
)Explore exemplos práticos de processamento de PDF na receita do cookbook.
Veja a documentação completa da API para suporte a PDF.
Was this page helpful?