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

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

Перед началом работы

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

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

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

Обратите внимание, что оба ограничения относятся ко всей полезной нагрузке запроса, включая любой другой контент, отправляемый вместе с PDF.

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

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

Поддержка PDF в настоящее время доступна на Claude 3.7 Sonnet (claude-3-7-sonnet-20250219), обеих моделях Claude 3.5 Sonnet (claude-3-5-sonnet-20241022, claude-3-5-sonnet-20240620), и Claude 3.5 Haiku (claude-3-5-haiku-20241022) через прямой доступ к API и Google Vertex AI. Эта функциональность скоро будет поддерживаться на Amazon Bedrock.


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

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

Давайте начнем с простого примера использования API Messages. Вы можете предоставить PDF-файлы Claude двумя способами:

  1. Как PDF в base64-кодировке в блоках контента document
  2. Как URL-ссылку на PDF, размещенный онлайн

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

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

 curl https://api.anthropic.com/v1/messages \
   -H "content-type: application/json" \
   -H "x-api-key: $ANTHROPIC_API_KEY" \
   -H "anthropic-version: 2023-06-01" \
   -d '{
     "model": "claude-3-7-sonnet-20250219",
     "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?"
         }]
     }]
 }'

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

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

# Метод 1: Загрузить и закодировать удаленный PDF
curl -s "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf" | base64 | tr -d '\n' > pdf_base64.txt

# Метод 2: Закодировать локальный PDF-файл
# base64 document.pdf | tr -d '\n' > pdf_base64.txt

# Создать файл JSON-запроса, используя содержимое pdf_base64.txt
jq -n --rawfile PDF_BASE64 pdf_base64.txt '{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 1024,
    "messages": [{
        "role": "user",
        "content": [{
            "type": "document",
            "source": {
                "type": "base64",
                "media_type": "application/pdf",
                "data": $PDF_BASE64
            }
        },
        {
            "type": "text",
            "text": "What are the key findings in this document?"
        }]
    }]
}' > request.json

# Отправить API-запрос, используя JSON-файл
curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @request.json

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

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

1

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

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

Claude анализирует как текст, так и изображения для лучшего понимания документа.

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

Claude отвечает, ссылаясь на содержимое PDF, если это уместно.

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

  • Кэширование промптов: Для улучшения производительности при повторном анализе.
  • Пакетная обработка: Для обработки большого объема документов.
  • Использование инструментов: Для извлечения конкретной информации из документов для использования в качестве входных данных инструментов.

Оцените ваши затраты

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

  • Стоимость текстовых токенов: Каждая страница обычно использует 1500-3000 токенов в зависимости от плотности контента. Применяется стандартная цена API без дополнительных сборов за PDF.
  • Стоимость токенов изображений: Поскольку каждая страница преобразуется в изображение, применяются те же расчеты стоимости на основе изображений.

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


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

Улучшение производительности

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

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

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

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

Используйте кэширование промптов

Кэшируйте PDF для улучшения производительности при повторных запросах:

# Создать файл JSON-запроса, используя содержимое pdf_base64.txt
jq -n --rawfile PDF_BASE64 pdf_base64.txt '{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 1024,
    "messages": [{
        "role": "user",
        "content": [{
            "type": "document",
            "source": {
                "type": "base64",
                "media_type": "application/pdf",
                "data": $PDF_BASE64
            },
            "cache_control": {
              "type": "ephemeral"
            }
        },
        {
            "type": "text",
            "text": "Which model has the highest human preference win rates across each use-case?"
        }]
    }]
}' > request.json

# Затем сделать API-вызов, используя JSON-файл
curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @request.json

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

Используйте API Message Batches для рабочих процессов с большим объемом:

# Создать файл JSON-запроса, используя содержимое pdf_base64.txt
jq -n --rawfile PDF_BASE64 pdf_base64.txt '
{
  "requests": [
      {
          "custom_id": "my-first-request",
          "params": {
              "model": "claude-3-7-sonnet-20250219",
              "max_tokens": 1024,
              "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "document",
                            "source": {
 "type": "base64",
 "media_type": "application/pdf",
 "data": $PDF_BASE64
                            }
                        },
                        {
                            "type": "text",
                            "text": "Which model has the highest human preference win rates across each use-case?"
                        }
                    ]
                }
              ]
          }
      },
      {
          "custom_id": "my-second-request",
          "params": {
              "model": "claude-3-7-sonnet-20250219",
              "max_tokens": 1024,
              "messages": [
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "document",
                            "source": {
 "type": "base64",
 "media_type": "application/pdf",
 "data": $PDF_BASE64
                            }
                        },
                        {
                            "type": "text",
                            "text": "Extract 5 key insights from this document."
                        }
                    ]
                }
              ]
          }
      }
  ]
}
' > request.json

# Затем сделать API-вызов, используя JSON-файл
curl https://api.anthropic.com/v1/messages/batches \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d @request.json

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