Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.
Вы можете спрашивать Claude о любом тексте, изображениях, диаграммах и таблицах в предоставленных вами PDF. Некоторые примеры использования:
Claude работает с любым стандартным PDF. Убедитесь, что размер вашего запроса соответствует следующим требованиям:
| Требование | Ограничение |
|---|---|
| Максимальный размер запроса | 32 МБ (зависит от платформы) |
| Максимальное количество страниц на запрос | 600 (100, когда контекстное окно запроса меньше 1M токенов) |
| Формат | Стандартный PDF (без паролей/шифрования) |
Оба ограничения относятся ко всей полезной нагрузке запроса, включая любое другое содержимое, отправляемое вместе с PDF. Для больших PDF рассмотрите возможность загрузки через Files API и ссылки по file_id, чтобы полезная нагрузка запросов оставалась небольшой.
Плотные PDF (много страниц с мелким шрифтом, сложные таблицы или обилие графики) могут заполнить контекстное окно до достижения лимита страниц. Запросы с большими PDF также могут завершиться ошибкой до достижения лимита страниц, даже при использовании Files API. Попробуйте разделить документ на разделы; для больших файлов, поскольку каждая страница обрабатывается как изображение, понижение разрешения встроенных изображений также может помочь.
Поскольку поддержка PDF основана на возможностях зрения Claude, на неё распространяются те же ограничения и соображения, что и на другие задачи, связанные со зрением.
Поддержка PDF доступна в Claude API, Claude Platform на AWS, Amazon Bedrock (см. поддержку PDF в Amazon Bedrock), Google Cloud и Microsoft Foundry. Все активные модели поддерживают обработку PDF.
При использовании поддержки PDF через Converse API, являющийся частью Claude на Amazon Bedrock (устаревший), существуют два различных режима обработки документов:
Важно: Чтобы получить доступ к полным возможностям визуального понимания PDF Claude в Converse API, вы должны включить цитирование. Без включённого цитирования API возвращается только к базовому извлечению текста. Узнайте больше о работе с цитированием.
Converse Document Chat (Исходный режим — только извлечение текста)
Claude PDF Chat (Новый режим — полное визуальное понимание)
Если Claude не видит изображения или диаграммы в ваших PDF при использовании Converse API, вам, скорее всего, нужно включить флаг цитирования. Без него Converse возвращается только к базовому извлечению текста.
Это известное ограничение Converse API. Для приложений, которым требуется визуальный анализ PDF без цитирования, рассмотрите возможность использования InvokeModel API.
Простые текстовые файлы, такие как .txt, .csv или .md, могут использоваться непосредственно в блоках документов: загрузите их в Files API с MIME-типом text/plain и ссылайтесь на них по file_id. Бинарные форматы, такие как .xlsx или .docx, не поддерживаются в блоках документов и должны быть сначала преобразованы в текст или PDF. См. Работа с другими форматами файлов.
Начнём с простого примера с использованием Messages API. Вы можете предоставить PDF Claude тремя способами:
documentfile_id из Files APIНа Amazon Bedrock и Google Cloud в настоящее время доступны только источники, закодированные в base64. На Microsoft Foundry Files API не поддерживается для развёртываний, размещённых в Azure.
Самый простой подход — ссылаться на 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)Ответ возвращает анализ Claude в виде текстовых блоков в content, с потреблением токенов в usage:
{
"id": "msg_01Hfp8YuFjQ55VgWbpdHDehB",
"type": "message",
"role": "assistant",
"model": "claude-opus-4-8",
"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
}
}Если вам нужно отправить 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, 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-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("/path/to/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 с помощью кэширования подсказок, чтобы улучшить производительность при повторных запросах:
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, follow_redirects=True).content
).decode("utf-8")
# Создаём сообщение с кэшированным документом
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": "Which model has the highest human preference win rates across each use-case?",
},
],
}
],
)
print(message.content)Используйте Message Batches API для обработки множества PDF в одном запросе:
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, 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-4-8",
"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-4-8",
"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 в рецепте cookbook.
Смотрите полную документацию API по поддержке PDF.
Was this page helpful?