Вы можете задавать Claude вопросы о любом тексте, изображениях, диаграммах и таблицах в предоставленных вами PDF-файлах. Вот несколько примеров использования:
Claude работает с любыми стандартными PDF-файлами. Убедитесь, что размер вашего запроса соответствует следующим требованиям:
| Требование | Ограничение |
|---|---|
| Максимальный размер запроса | 32 МБ (зависит от платформы) |
| Максимальное количество страниц на запрос | 600 (100, если контекстное окно запроса меньше 1 млн токенов) |
| Формат | Стандартный PDF (без паролей/шифрования) |
Оба ограничения применяются ко всей полезной нагрузке запроса, включая любой другой контент, отправляемый вместе с PDF-файлами. Для больших PDF-файлов рассмотрите возможность загрузки через Files API и ссылки по file_id, чтобы сохранить небольшой размер полезной нагрузки запроса.
Поскольку поддержка PDF основана на возможностях зрения Claude, на неё распространяются те же ограничения и особенности, что и на другие задачи, связанные со зрением.
Все активные модели поддерживают обработку PDF. О поддержке PDF через Converse API от Amazon Bedrock см. раздел Поддержка PDF в Amazon Bedrock.
При использовании поддержки PDF через Converse API, являющийся частью Claude на Amazon Bedrock (Opus 4.6 и более ранние версии), существуют два различных режима обработки документов:
Converse Document Chat (исходный режим — только извлечение текста)
Claude PDF Chat (новый режим — полное визуальное понимание)
Если Claude не видит изображения или диаграммы в ваших PDF-файлах при использовании Converse API, вероятно, вам нужно включить флаг цитирования. Без него Converse возвращается к базовому извлечению только текста.
Начните с простого примера, используя Messages API. Вы можете предоставить PDF-файлы Claude тремя способами:
documentfile_id из Files APIСамый простой подход — сослаться на PDF напрямую по URL:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
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-5",
"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-5",
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-5",
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-5",
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-5",
"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-5",
"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 в рецепте Claude Cookbook.
См. полную документацию API по поддержке PDF.
| Supported platforms |
|
|---|
Was this page helpful?