Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.
Вы можете задавать Claude вопросы о любом тексте, изображениях, диаграммах и таблицах в предоставленных вами PDF-файлах. Некоторые примеры сценариев использования:
Claude работает с любыми стандартными PDF-файлами. Убедитесь, что размер вашего запроса соответствует следующим требованиям:
| Требование | Ограничение |
|---|---|
| Максимальный размер запроса | 32 МБ (зависит от платформы) |
| Максимальное количество страниц на запрос | 600 (100 для моделей с контекстным окном в 200 тыс. токенов) |
| Формат | Стандартный PDF (без паролей/шифрования) |
Оба ограничения применяются ко всей полезной нагрузке запроса, включая любой другой контент, отправляемый вместе с PDF-файлами. Для больших PDF-файлов рассмотрите возможность загрузки через Files API и ссылки по file_id, чтобы сохранить небольшой размер полезной нагрузки запроса.
Плотные PDF-файлы (много страниц с мелким шрифтом, сложные таблицы или насыщенная графика) могут заполнить контекстное окно до достижения лимита страниц. Запросы с большими PDF-файлами также могут завершиться неудачей до достижения лимита страниц, даже при использовании Files API. Попробуйте разделить документ на части; для больших файлов, поскольку каждая страница обрабатывается как изображение, также может помочь уменьшение разрешения встроенных изображений.
Поскольку поддержка PDF основана на возможностях зрения Claude, на неё распространяются те же ограничения и особенности, что и на другие задачи, связанные со зрением.
Поддержка PDF доступна в Claude API, Claude Platform на AWS, Amazon Bedrock (см. Поддержка PDF в Amazon Bedrock), Vertex AI и Microsoft Foundry. Все активные модели поддерживают обработку PDF.
При использовании поддержки PDF через Converse API в Bedrock существуют два различных режима обработки документов:
Важно: Чтобы получить доступ к полным возможностям визуального понимания PDF в Claude через Converse API, необходимо включить цитирование. Без включённого цитирования API возвращается только к базовому извлечению текста. Узнайте больше о работе с цитированием.
Converse Document Chat (исходный режим — только извлечение текста)
Claude PDF Chat (новый режим — полное визуальное понимание)
Если Claude не видит изображения или диаграммы в ваших PDF-файлах при использовании Converse API, вероятно, вам нужно включить флаг цитирования. Без него Converse возвращается только к базовому извлечению текста.
Это известное ограничение Converse API. Для приложений, которым требуется визуальный анализ PDF без цитирования, рассмотрите возможность использования InvokeModel API.
Для файлов, отличных от PDF, таких как .csv, .xlsx, .docx, .md или .txt, см. раздел Работа с другими форматами файлов.
Начнём с простого примера с использованием Messages API. Вы можете предоставить PDF-файлы Claude тремя способами:
documentfile_id из Files APIВ Amazon Bedrock и Vertex AI в настоящее время доступны только источники в кодировке base64.
Самый простой подход — сослаться на PDF напрямую по URL:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
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)Если вам нужно отправить PDF-файлы из локальной системы или когда URL недоступен:
import base64
import httpx
# Сначала загрузите и закодируйте 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")
# Альтернатива: загрузка из локального файла
# 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-4-8",
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)Для PDF-файлов, которые вы будете использовать многократно, или когда вы хотите избежать накладных расходов на кодирование, используйте Files API:
client = anthropic.Anthropic()
# Загрузите PDF-файл
with open("document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Используйте загруженный файл в сообщении
message = client.beta.messages.create(
model="claude-opus-4-8",
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)Когда вы отправляете PDF в Claude, происходят следующие шаги:
Система извлекает содержимое документа.
Claude анализирует как текст, так и изображения для лучшего понимания документа.
Claude отвечает, ссылаясь на содержимое PDF, если это уместно.
Claude может ссылаться как на текстовое, так и на визуальное содержимое в своих ответах. Вы можете дополнительно улучшить производительность, интегрировав поддержку PDF с:
Количество токенов в PDF-файле зависит от общего объёма извлечённого из документа текста, а также от количества страниц:
Вы можете использовать подсчёт токенов, чтобы оценить затраты для ваших конкретных PDF-файлов.
Следуйте этим рекомендациям для достижения оптимальных результатов:
Для обработки больших объёмов рассмотрите следующие подходы:
Кэшируйте PDF-файлы для повышения производительности при повторных запросах:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
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."},
],
}
],
)Используйте Message Batches API для рабочих процессов с большим объёмом:
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "doc1",
"params": {
"model": "claude-opus-4-8",
"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."},
],
}
],
},
}
]
)Изучите практические примеры обработки PDF в рецепте из сборника.
См. полную документацию API по поддержке PDF.
Was this page helpful?