Claude Platform Docs
MessagesРабота с файлами

Поддержка PDF

Обрабатывайте PDF с помощью Claude: извлекайте текст, анализируйте диаграммы и понимайте визуальное содержимое ваших документов.

Вы можете спрашивать Claude о любом тексте, изображениях, диаграммах и таблицах в предоставленных вами PDF. Некоторые примеры использования:

  • Анализ финансовых отчётов и понимание диаграмм/таблиц
  • Извлечение ключевой информации из юридических документов
  • Помощь в переводе документов
  • Преобразование информации из документов в структурированные форматы

Прежде чем начать

Проверьте требования к PDF

Claude работает с любым стандартным PDF. Убедитесь, что размер вашего запроса соответствует следующим требованиям:

ТребованиеОграничение
Максимальный размер запроса32 МБ (зависит от платформы)
Максимальное количество страниц в запросе600 (100, если контекстное окно запроса меньше 1 млн токенов)
ФорматСтандартный PDF (без паролей/шифрования)

Оба ограничения относятся ко всей полезной нагрузке запроса, включая любое другое содержимое, отправляемое вместе с PDF. Для больших PDF рассмотрите возможность загрузки через Files API и ссылки по file_id, чтобы полезная нагрузка запросов оставалась небольшой.

Поскольку поддержка PDF опирается на возможности зрения Claude, на неё распространяются те же ограничения и соображения, что и на другие задачи, связанные со зрением.

Поддерживаемые платформы и модели

Все активные модели поддерживают обработку PDF. О поддержке PDF через Converse API в Amazon Bedrock см. раздел Поддержка PDF в Amazon Bedrock.

Поддержка PDF в Amazon Bedrock

При использовании поддержки PDF через Converse API, являющийся частью Claude на Amazon Bedrock (Opus 4.6 и более ранние), существуют два различных режима обработки документов:

Режимы обработки документов

  1. Converse Document Chat (исходный режим — только извлечение текста)

    • Обеспечивает базовое извлечение текста из PDF
    • Не может анализировать изображения, диаграммы или визуальную компоновку внутри PDF
    • Использует приблизительно 1 000 токенов для 3-страничного PDF
    • Используется автоматически, когда цитирование не включено
  2. Claude PDF Chat (новый режим — полное визуальное понимание)

    • Обеспечивает полный визуальный анализ PDF
    • Может понимать и анализировать диаграммы, графики, изображения и визуальную компоновку
    • Обрабатывает каждую страницу и как текст, и как изображение для всестороннего понимания
    • Использует приблизительно 7 000 токенов для 3-страничного PDF
    • Требует включения цитирования в Converse API

Ключевые ограничения

  • Converse API: Визуальный анализ PDF требует включения цитирования. В настоящее время нет возможности использовать визуальный анализ без цитирования (в отличие от InvokeModel API).
  • InvokeModel API: Предоставляет полный контроль над обработкой PDF без принудительного цитирования.

Распространённые проблемы

Если Claude не видит изображения или диаграммы в ваших PDF при использовании Converse API, вероятно, вам нужно включить флаг цитирования. Без него Converse переключается только на базовое извлечение текста.

Обработка PDF с помощью Claude

Отправьте свой первый запрос с PDF

Начните с простого примера, использующего Messages API. Вы можете предоставить PDF Claude тремя способами:

  1. В виде URL-ссылки на PDF, размещённый в интернете
  2. В виде PDF в кодировке base64 в блоках содержимого document
  3. По file_id из Files API

Вариант 1: PDF-документ по URL

Самый простой подход — сослаться на PDF напрямую по URL:

client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-5-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)

Ответ возвращает анализ Claude в виде текстовых блоков в content, а потребление токенов — в usage:

Output
{
  "id": "msg_01Hfp8YuFjQ55VgWbpdHDehB",
  "type": "message",
  "role": "assistant",
  "model": "claude-opus-5-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
  }
}

Вариант 2: PDF-документ в кодировке base64

Если вам нужно отправить PDF из локальной системы или когда URL недоступен:

import base64
import httpx2

# Сначала загрузите и закодируйте 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")

# Альтернатива: загрузка из локального файла
# with open("document.pdf", "rb") as f:
#     pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")

# Отправка в Claude с использованием кодировки base64
client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-5-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)

Вариант 3: Files API

Для PDF, которые вы будете использовать многократно, или если вы хотите избежать накладных расходов на кодирование, используйте Files API:

client = anthropic.Anthropic()

# Загрузите PDF-файл
with open("/path/to/document.pdf", "rb") as f:
    file_upload = client.files.upload(file=("document.pdf", f, "application/pdf"))

# Используйте загруженный файл в сообщении
message = client.messages.create(
    model="claude-opus-5-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)

Как работает поддержка PDF

Когда вы отправляете PDF в Claude, происходят следующие шаги:

  1. Система извлекает содержимое документа.

    • Система преобразует каждую страницу документа в изображение.
    • Текст с каждой страницы извлекается и предоставляется вместе с изображением каждой страницы.
  2. Claude анализирует и текст, и изображения, чтобы лучше понять документ.

    • Документы предоставляются для анализа в виде комбинации текста и изображений.
    • Это позволяет пользователям запрашивать сведения о визуальных элементах PDF, таких как диаграммы, схемы и другое нетекстовое содержимое.
  3. Claude отвечает, при необходимости ссылаясь на содержимое PDF.

    При ответе Claude может ссылаться как на текстовое, так и на визуальное содержимое. Вы можете дополнительно повысить производительность, интегрировав поддержку PDF с:

Оцените свои затраты

Количество токенов PDF-файла зависит от общего объёма текста, извлечённого из документа, и количества страниц:

  • Стоимость текстовых токенов: каждая страница обычно использует 1 500–3 000 токенов в зависимости от плотности содержимого. Применяются стандартные цены API без дополнительной платы за PDF.
  • Стоимость токенов изображений: поскольку каждая страница преобразуется в изображение, применяются те же расчёты стоимости на основе изображений.

Вы можете использовать подсчёт токенов для оценки затрат на ваши конкретные PDF.

Оптимизация обработки PDF

Повышение производительности

Следуйте этим рекомендациям для достижения оптимальных результатов:

  • Размещайте PDF перед текстом в ваших запросах
  • Используйте стандартные шрифты
  • Убедитесь, что текст чёткий и разборчивый
  • Поворачивайте страницы в правильную вертикальную ориентацию
  • Используйте в подсказках логические номера страниц (из программы просмотра PDF)
  • При необходимости разделяйте большие PDF на части
  • Включайте кэширование подсказок для повторного анализа

Масштабирование вашей реализации

Для обработки больших объёмов рассмотрите следующие подходы:

Использование кэширования подсказок

Кэшируйте PDF с помощью «prompt caching» (кэширование подсказок), чтобы повысить производительность при повторных запросах:

import base64
import httpx2

# Сначала загрузите и закодируйте 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")

# Создайте сообщение с кэшированным документом
client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-5-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)

Обработка пакетов документов

Используйте Message Batches API для обработки множества PDF в одном запросе:

import base64
import httpx2

# Сначала загрузите и закодируйте 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")

# Создайте пакет запросов, использующих этот документ
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
    requests=[
        {
            "custom_id": "my-first-request",
            "params": {
                "model": "claude-opus-5-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-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)

Пакеты обрабатываются асинхронно. Чтобы проверить ход выполнения и получить результаты после завершения обработки, см. Пакетная обработка.

Следующие шаги

Возможности зрения Claude позволяют ему понимать и анализировать изображения, открывая захватывающие возможности для мультимодального взаимодействия.

Изучите практические примеры обработки PDF в рецепте Claude Cookbook.

См. полную документацию API по поддержке PDF.

Compatibility

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

Was this page helpful?