This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Вы можете задавать Claude вопросы о любом тексте, изображениях, диаграммах и таблицах в предоставленных вами PDF-файлах. Некоторые примеры использования:
Claude работает с любым стандартным PDF. Убедитесь, что размер вашего запроса соответствует этим требованиям:
| Требование | Лимит |
|---|---|
| Максимальный размер запроса | 32 МБ (варьируется в зависимости от платформы) |
| Максимальное количество страниц на запрос | 600 (100 для моделей с контекстным окном 200k токенов) |
| Формат | Стандартный PDF (без паролей/шифрования) |
Оба лимита применяются ко всему полезному грузу запроса, включая любое другое содержимое, отправляемое вместе с PDF. Для больших PDF рассмотрите возможность загрузки с помощью Files API и ссылки по file_id для сохранения небольшого размера полезного груза запроса.
Плотные PDF (много страниц с мелким шрифтом, сложные таблицы или тяжелая графика) могут заполнить контекстное окно до достижения лимита страниц. Запросы с большими PDF также могут завершиться ошибкой до достижения лимита страниц, даже при использовании Files API. Попробуйте разделить документ на разделы; для больших файлов, поскольку каждая страница обрабатывается как изображение, понижение дискретизации встроенных изображений также может помочь.
Поскольку поддержка PDF основана на возможностях зрения Claude, она подлежит тем же ограничениям и соображениям, что и другие задачи зрения.
Поддержка PDF в настоящее время поддерживается через прямой доступ к API и Google Vertex AI. Все активные модели поддерживают обработку PDF.
Поддержка PDF теперь доступна на Amazon Bedrock со следующими соображениями:
При использовании поддержки PDF через Converse API Amazon 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Самый простой подход - ссылаться на PDF непосредственно с URL:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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
# First, load and encode the 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")
# Alternative: Load from a local file
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Send to Claude using base64 encoding
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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()
# Upload the PDF file
with open("document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Use the uploaded file in a message
message = client.beta.messages.create(
model="claude-opus-4-7",
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-7",
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."},
],
}
],
)Используйте API Message Batches для высокопроизводительных рабочих процессов:
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "doc1",
"params": {
"model": "claude-opus-4-7",
"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 в рецепте cookbook.
Ознакомьтесь с полной документацией API для поддержки PDF.
Was this page helpful?