「zero data retention」(ゼロデータ保持)、すなわちZDRがこの機能にどのように適用されるかについては、APIとデータ保持を参照してください。
提供したPDF内のテキスト、画像、チャート、表についてClaudeに質問できます。いくつかのユースケースの例:
Claudeは標準的なPDFであればどれでも動作します。リクエストサイズが以下の要件を満たしていることを確認してください:
| 要件 | 制限 |
|---|---|
| 最大リクエストサイズ | 32 MB(プラットフォームによって異なります) |
| リクエストあたりの最大ページ数 | 600(リクエストのコンテキストウィンドウが1Mトークン未満の場合は100) |
| フォーマット | 標準PDF(パスワード/暗号化なし) |
どちらの制限も、PDFと一緒に送信される他のコンテンツを含むリクエストペイロード全体に適用されます。大きなPDFの場合は、Files APIでアップロードしてfile_idで参照することで、リクエストペイロードを小さく保つことを検討してください。
密度の高いPDF(小さいフォントのページが多い、複雑な表、または大量のグラフィックス)は、ページ制限に達する前にコンテキストウィンドウを埋めてしまう可能性があります。大きなPDFを含むリクエストは、Files APIを使用している場合でも、ページ制限に達する前に失敗することがあります。ドキュメントをセクションに分割してみてください。大きなファイルの場合、各ページは画像として処理されるため、埋め込み画像をダウンサンプリングすることも有効です。
PDFサポートはClaudeのビジョン機能に依存しているため、他のビジョンタスクと同じ制限事項と考慮事項が適用されます。
PDFサポートは、Claude API、Amazon Bedrock(Amazon Bedrock PDFサポートを参照)、Claude Platform on AWS、Google Cloud、およびMicrosoft Foundryで利用できます。すべてのアクティブなモデルがPDF処理をサポートしています。
Claude on Amazon Bedrock(Opus 4.6以前)の一部であるConverse APIを通じてPDFサポートを使用する場合、2つの異なるドキュメント処理モードがあります:
重要: Converse APIでClaudeの完全なビジュアルPDF理解機能にアクセスするには、引用(citations)を有効にする必要があります。引用が有効になっていない場合、APIは基本的なテキスト抽出のみにフォールバックします。詳細については、引用の使用を参照してください。
Converse Document Chat(オリジナルモード - テキスト抽出のみ)
Claude PDF Chat(新モード - 完全なビジュアル理解)
Converse APIを使用しているときにClaudeがPDF内の画像やチャートを認識しない場合は、引用フラグを有効にする必要がある可能性が高いです。これがないと、Converseは基本的なテキスト抽出のみにフォールバックします。
これはConverse APIの既知の制約です。引用なしでビジュアルPDF分析が必要なアプリケーションの場合は、代わりにInvokeModel APIの使用を検討してください。
.txt、.csv、.mdなどのプレーンテキストファイルは、ドキュメントブロックで直接使用できます。MIMEタイプtext/plainでFiles APIにアップロードし、file_idで参照してください。.xlsxや.docxなどのバイナリフォーマットはドキュメントブロックではサポートされておらず、最初にテキストまたはPDFに変換する必要があります。他のファイルフォーマットの操作を参照してください。
Messages APIを使用した簡単な例から始めましょう。ClaudeにPDFを提供する方法は3つあります:
documentコンテンツブロック内のbase64エンコードされたPDFとしてfile_idによってAmazon BedrockとGoogle Cloudでは、現在base64エンコードされたソースのみが利用可能です。Microsoft Foundryでは、Azureでホストされているデプロイメントに対してFiles APIはサポートされていません。
最も簡単なアプローチは、URLから直接PDFを参照することです:
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")
# base64エンコーディングを使用してClaudeに送信します
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を使用して、1つのリクエストで多数の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のビジョン機能により、画像を理解・分析でき、マルチモーダルなインタラクションのエキサイティングな可能性が広がります。
Claude CookbookのレシピでPDF処理の実践的な例を探索してください。
PDFサポートの完全なAPIドキュメントを参照してください。
Was this page helpful?