Claude Platform Docs
MessagesTrabalhando com arquivos

Suporte a PDF

Processe PDFs com Claude: extraia texto, analise gráficos e compreenda o conteúdo visual dos seus documentos.

Você pode perguntar ao Claude sobre qualquer texto, imagem, gráfico e tabela nos PDFs que você fornecer. Alguns exemplos de casos de uso:

  • Analisar relatórios financeiros e compreender gráficos/tabelas
  • Extrair informações-chave de documentos jurídicos
  • Auxiliar na tradução de documentos
  • Converter informações de documentos em formatos estruturados

Antes de começar

Verifique os requisitos de PDF

Claude funciona com qualquer PDF padrão. Certifique-se de que o tamanho da sua requisição atenda a estes requisitos:

RequisitoLimite
Tamanho máximo da requisição32 MB (varia por plataforma)
Máximo de páginas por requisição600 (100 quando a janela de contexto da requisição é inferior a 1M de tokens)
FormatoPDF 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 o upload com a Files API e referenciá-los por file_id para manter os payloads das requisições 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.

Plataformas e modelos suportados

Todos os modelos ativos suportam o processamento de PDF. Para suporte a PDF por meio da Converse API do Amazon Bedrock, consulte Suporte a PDF no Amazon Bedrock.

Suporte a PDF no Amazon Bedrock

Ao usar o suporte a PDF por meio da Converse API, parte do Claude no Amazon Bedrock (Opus 4.6 e anteriores), existem dois modos distintos de processamento de documentos:

Modos de processamento de documentos

  1. Converse Document Chat (Modo original - Apenas extração de texto)

    • Fornece extração básica de texto de PDFs
    • Não consegue analisar imagens, gráficos ou layouts visuais dentro de PDFs
    • Usa aproximadamente 1.000 tokens para um PDF de 3 páginas
    • Usado automaticamente quando as citações não estão habilitadas
  2. Claude PDF Chat (Novo modo - Compreensão visual completa)

    • Fornece análise visual completa de PDFs
    • Consegue compreender e analisar gráficos, diagramas, imagens e layouts visuais
    • Processa cada página tanto como texto quanto como imagem para uma compreensão abrangente
    • Usa aproximadamente 7.000 tokens para um PDF de 3 páginas
    • Requer que as citações estejam habilitadas na Converse API

Principais limitações

  • Converse API: A análise visual de PDF requer que as citações estejam habilitadas. Atualmente não há opção para usar a análise visual sem citações (diferentemente da InvokeModel API).
  • InvokeModel API: Fornece controle total sobre o processamento de PDF sem citações obrigatórias.

Problemas comuns

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.

Processe PDFs com Claude

Envie sua primeira requisição com PDF

Comece com um exemplo simples usando a Messages API. Você pode fornecer PDFs ao Claude de três maneiras:

  1. Como uma referência de URL para um PDF hospedado online
  2. Como um PDF codificado em base64 em blocos de conteúdo document
  3. Por meio de um file_id da Files API

Opção 1: Documento PDF baseado em URL

A abordagem mais simples é referenciar um PDF diretamente a partir 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:

Output
{
  "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
  }
}

Opção 2: Documento PDF codificado em base64

Se você precisar enviar PDFs do seu sistema local ou quando uma URL não estiver disponível:

import base64
import httpx2

# 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(
    httpx2.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)

Opção 3: Files API

Para PDFs que você usará repetidamente, ou quando quiser evitar a sobrecarga de codificação, use a Files API:

client = anthropic.Anthropic()

# Faça o upload do arquivo PDF
with open("/path/to/document.pdf", "rb") as f:
    file_upload = client.files.upload(file=("document.pdf", f, "application/pdf"))

# Use o arquivo enviado em uma mensagem
message = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    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)

Como funciona o suporte a PDF

Quando você envia um PDF ao Claude, ocorrem as seguintes etapas:

  1. O sistema extrai o conteúdo do documento.

    • O sistema converte cada página do documento em uma imagem.
    • O texto de cada página é extraído e fornecido junto com a imagem de cada página.
  2. Claude analisa tanto o texto quanto as imagens para compreender melhor o documento.

    • Os documentos são fornecidos como uma combinação de texto e imagens para análise.
    • Isso permite que os usuários peçam insights sobre elementos visuais de um PDF, como gráficos, diagramas e outros conteúdos não textuais.
  3. Claude responde, referenciando o conteúdo do PDF, se relevante.

    Claude pode referenciar tanto o conteúdo textual quanto o visual ao responder. Você pode melhorar ainda mais o desempenho integrando o suporte a PDF com:

Estime seus custos

A contagem de tokens de um arquivo PDF depende do total de texto extraído do documento e do número de páginas:

  • Custos de tokens de texto: Cada página normalmente usa de 1.500 a 3.000 tokens, dependendo da densidade do conteúdo. Aplica-se o preço padrão da API, sem taxas adicionais para PDF.
  • Custos de tokens de imagem: Como cada página é convertida em uma imagem, são aplicados os mesmos cálculos de custo baseados em imagem.

Você pode usar a contagem de tokens para estimar os custos dos seus PDFs específicos.

Otimize o processamento de PDF

Melhore o desempenho

Siga estas práticas recomendadas para obter os melhores resultados:

  • Coloque os PDFs antes do texto nas suas requisições
  • Use fontes padrão
  • Certifique-se de que o texto esteja claro e legível
  • Gire as páginas para a orientação vertical correta
  • Use números de página lógicos (do visualizador de PDF) nos prompts
  • Divida PDFs grandes em partes quando necessário
  • Habilite o cache de prompt para análises repetidas

Escale sua implementação

Para processamento em alto volume, considere estas abordagens:

Use o cache de prompt

Armazene PDFs em cache com o "prompt caching" (cache de prompt) para melhorar o desempenho em consultas repetidas:

import base64
import httpx2

# 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(
    httpx2.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)

Processe lotes de documentos

Use a Message Batches API para processar muitos PDFs em uma única requisição:

import base64
import httpx2

# 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(
    httpx2.get(pdf_url, follow_redirects=True).content
).decode("utf-8")

# Crie um lote de solicitaçõ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 os resultados quando o processamento terminar, consulte Processamento em lote.

Próximos passos

As capacidades de visão do Claude permitem que ele compreenda e analise imagens, abrindo possibilidades empolgantes para a interação multimodal.

Explore exemplos práticos de processamento de PDF na receita do Claude Cookbook.

Consulte a documentação completa da API para o suporte a PDF.

Compatibility

Supported platforms
  • Claude API
  • Claude Platform on AWS
  • Amazon Bedrock
  • Google Cloud
  • Microsoft Foundry

Was this page helpful?