Loading...
  • ビルド
  • 管理
  • モデルと料金
  • クライアントSDK
  • APIリファレンス
Search...
⌘K
Log in
PDFサポート
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
ビルド/ファイルの操作

PDFサポート

Claudeを使用してPDFを処理します。ドキュメントからテキストを抽出し、チャートを分析し、視覚的なコンテンツを理解します。

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のテキスト、画像、チャート、表について質問できます。いくつかのサンプルユースケース:

  • 財務報告書の分析とチャート/表の理解
  • 法的文書からの重要情報の抽出
  • ドキュメントの翻訳支援
  • ドキュメント情報を構造化形式に変換

始める前に

PDFの要件を確認する

Claudeは標準的なPDFで動作します。リクエストサイズがこれらの要件を満たしていることを確認してください:

要件制限
最大リクエストサイズ32 MB (プラットフォームによって異なります)
リクエストあたりの最大ページ数600 (200kトークンコンテキストウィンドウを持つモデルの場合は100)
フォーマット標準PDF (パスワード/暗号化なし)

両方の制限は、PDFと一緒に送信される他のコンテンツを含む、リクエスト全体のペイロードに対するものです。大きなPDFの場合、Files APIでアップロードし、file_idで参照してリクエストペイロードを小さく保つことを検討してください。

密度の高いPDF(多くの小さいフォントのページ、複雑な表、または重いグラフィックス)は、ページ制限に達する前にコンテキストウィンドウを満たす可能性があります。大きなPDFを含むリクエストは、Files APIを使用している場合でも、ページ制限に達する前に失敗する可能性があります。ドキュメントをセクションに分割してみてください。大きなファイルの場合、各ページが画像として処理されるため、埋め込み画像のダウンサンプリングも役立つ可能性があります。

PDFサポートはClaudeのビジョン機能に依存しているため、他のビジョンタスクと同じ制限と考慮事項の対象となります。

サポートされているプラットフォームとモデル

PDFサポートは現在、直接APIアクセスとGoogle Vertex AIを通じてサポートされています。すべてのアクティブなモデルがPDF処理をサポートしています。

PDFサポートはAmazon Bedrockで利用可能になりました。以下の考慮事項があります:

Amazon Bedrock PDFサポート

Amazon BedrockのConverse APIを通じてPDFサポートを使用する場合、2つの異なるドキュメント処理モードがあります:

重要: Converse APIでClaudeの完全なビジュアルPDF理解機能にアクセスするには、引用を有効にする必要があります。引用が有効になっていない場合、APIは基本的なテキスト抽出のみにフォールバックします。引用の操作について詳しく学びます。

ドキュメント処理モード

  1. Converse Document Chat (元のモード - テキスト抽出のみ)

    • PDFからの基本的なテキスト抽出を提供します
    • PDF内の画像、チャート、または視覚的レイアウトを分析できません
    • 3ページのPDFに約1,000トークンを使用します
    • 引用が有効になっていない場合、自動的に使用されます
  2. Claude PDF Chat (新しいモード - 完全なビジュアル理解)

    • PDFの完全なビジュアル分析を提供します
    • チャート、グラフ、画像、および視覚的レイアウトを理解および分析できます
    • 包括的な理解のために各ページをテキストと画像の両方として処理します
    • 3ページのPDFに約7,000トークンを使用します

主な制限

  • Converse API: ビジュアルPDF分析には引用を有効にする必要があります。現在、引用なしでビジュアル分析を使用するオプションはありません (InvokeModel APIとは異なります)。
  • InvokeModel API: 強制的な引用なしでPDF処理を完全に制御できます。

一般的な問題

顧客がConverse APIを使用する場合、ClaudeがPDF内の画像またはチャートを見ていないと報告している場合、引用フラグを有効にする必要がある可能性があります。それなしでは、Converseは基本的なテキスト抽出のみにフォールバックします。

これはConverse APIの既知の制約です。引用なしでビジュアルPDF分析が必要なアプリケーションの場合、代わりにInvokeModel APIの使用を検討してください。

.csv、.xlsx、.docx、.md、.txtファイルなどの非PDFファイルについては、他のファイル形式の操作を参照してください。


Claudeを使用してPDFを処理する

最初のPDFリクエストを送信する

Messages APIを使用した簡単な例から始めましょう。Claudeに3つの方法でPDFを提供できます:

  1. オンラインでホストされているPDFへのURL参照として
  2. documentコンテンツブロック内のbase64エンコードされたPDFとして
  3. Files APIからのfile_idによって

オプション1: URLベースのPDFドキュメント

最も簡単なアプローチは、URLからPDFを直接参照することです:

オプション2: Base64エンコードされたPDFドキュメント

ローカルシステムからPDFを送信する必要がある場合、またはURLが利用できない場合:

オプション3: Files API

繰り返し使用するPDF、またはエンコーディングのオーバーヘッドを避けたい場合は、Files APIを使用してください:

PDFサポートの仕組み

Claudeに PDFを送信すると、次の手順が実行されます:

  1. 1

    システムがドキュメントの内容を抽出します。

    • システムはドキュメントの各ページを画像に変換します。
    • 各ページのテキストが抽出され、各ページの画像と一緒に提供されます。
  2. 2

    Claudeはテキストと画像の両方を分析してドキュメントをより良く理解します。

    • ドキュメントは分析のためにテキストと画像の組み合わせとして提供されます。
    • これにより、ユーザーはチャート、図、その他の非テキストコンテンツなど、PDFの視覚的要素に関する洞察を求めることができます。
  3. 3

    Claudeが応答し、必要に応じてPDFのコンテンツを参照します。

    Claudeは応答時にテキストと視覚的なコンテンツの両方を参照できます。PDFサポートを以下と統合することで、パフォーマンスをさらに向上させることができます:

    • プロンプトキャッシング: 繰り返し分析のパフォーマンスを向上させるため。
    • バッチ処理: 大量のドキュメント処理用。
    • ツール使用: ドキュメントから特定の情報を抽出してツール入力として使用するため。

コストを見積もる

PDFファイルのトークン数は、ドキュメントから抽出されたテキスト全体とページ数に依存します:

  • テキストトークンコスト: 各ページは通常、コンテンツの密度に応じて1ページあたり1,500~3,000トークンを使用します。標準APIの価格設定が適用され、追加のPDF料金はありません。
  • 画像トークンコスト: 各ページが画像に変換されるため、同じ画像ベースのコスト計算が適用されます。

トークンカウントを使用して、特定のPDFのコストを見積もることができます。


PDF処理を最適化する

パフォーマンスを向上させる

最適な結果を得るために、これらのベストプラクティスに従ってください:

  • リクエストでPDFをテキストの前に配置する
  • 標準フォントを使用する
  • テキストが明確で読みやすいことを確認する
  • ページを適切な直立方向に回転させる
  • プロンプトで論理的なページ番号(PDFビューアから)を使用する
  • 必要に応じて大きなPDFをチャンクに分割する
  • 繰り返し分析のためにプロンプトキャッシングを有効にする

実装をスケーリングする

大量処理の場合、以下のアプローチを検討してください:

プロンプトキャッシングを使用する

繰り返しクエリのパフォーマンスを向上させるためにPDFをキャッシュします:

ドキュメントバッチを処理する

大量ワークフローにはMessage Batches APIを使用します:

次のステップ

PDFの例を試す

クックブックレシピでPDF処理の実践的な例を探索します。

Was this page helpful?

  • PDFの要件を確認する
  • Amazon Bedrock PDFサポート
  • Claudeを使用してPDFを処理する
  • 最初のPDFリクエストを送信する
  • PDFサポートの仕組み
  • PDF処理を最適化する
Converse APIで引用を有効にする必要があります
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)
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)
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)
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."},
            ],
        }
    ],
)
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."},
                        ],
                    }
                ],
            },
        }
    ]
)
APIリファレンスを表示

PDF対応の完全なAPIドキュメントを参照してください。