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

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

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

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

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

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

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

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

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

Поддержка PDF в настоящее время доступна через прямой доступ к API и Google Vertex AI на:

  • Claude Opus 4 (claude-opus-4-20250514)
  • Claude Sonnet 4 (claude-sonnet-4-20250514)
  • Claude Sonnet 3.7 (claude-3-7-sonnet-20250219)
  • Claude Sonnet 3.5 models (claude-3-5-sonnet-20241022, claude-3-5-sonnet-20240620)
  • Claude Haiku 3.5 (claude-3-5-haiku-20241022)

Эта функциональность скоро будет поддерживаться на Amazon Bedrock.


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

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

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

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

Вариант 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-opus-4-20250514",
     "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 недоступен:

# Method 1: Fetch and encode a remote PDF
curl -s "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf" | base64 | tr -d '\n' > pdf_base64.txt

# Method 2: Encode a local PDF file
# base64 document.pdf | tr -d '\n' > pdf_base64.txt

# Create a JSON request file using the pdf_base64.txt content
jq -n --rawfile PDF_BASE64 pdf_base64.txt '{
    "model": "claude-opus-4-20250514",
    "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

# Send the API request using the JSON file
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

Вариант 3: Files API

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

# First, upload your PDF to the Files API
curl -X POST https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -F "file=@document.pdf"

# Then use the returned file_id in your message
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" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -d '{
    "model": "claude-opus-4-20250514", 
    "max_tokens": 1024,
    "messages": [{
      "role": "user",
      "content": [{
        "type": "document",
        "source": {
          "type": "file",
          "file_id": "file_abc123"
        }
      },
      {
        "type": "text",
        "text": "What are the key findings in this document?"
      }]
    }]
  }'

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

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

1

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

# Create a JSON request file using the pdf_base64.txt content
jq -n --rawfile PDF_BASE64 pdf_base64.txt '{
    "model": "claude-opus-4-20250514",
    "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

# Then make the API call using the JSON file
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

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

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

# Create a JSON request file using the pdf_base64.txt content
jq -n --rawfile PDF_BASE64 pdf_base64.txt '
{
  "requests": [
      {
          "custom_id": "my-first-request",
          "params": {
              "model": "claude-opus-4-20250514",
              "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-opus-4-20250514",
              "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

# Then make the API call using the JSON file
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

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