Anda dapat bertanya kepada Claude tentang teks, gambar, grafik, dan tabel apa pun dalam PDF yang Anda berikan. Beberapa contoh kasus penggunaan:
Claude bekerja dengan PDF standar apa pun. Pastikan ukuran permintaan Anda memenuhi persyaratan berikut:
| Persyaratan | Batas |
|---|---|
| Ukuran permintaan maksimum | 32 MB (bervariasi berdasarkan platform) |
| Halaman maksimum per permintaan | 600 (100 jika jendela konteks permintaan di bawah 1 juta token) |
| Format | PDF standar (tanpa kata sandi/enkripsi) |
Kedua batas tersebut berlaku untuk seluruh payload permintaan, termasuk konten lain yang dikirim bersama PDF. Untuk PDF berukuran besar, pertimbangkan untuk mengunggah dengan Files API dan mereferensikannya melalui file_id agar payload permintaan tetap kecil.
Karena dukungan PDF bergantung pada kemampuan vision Claude, dukungan ini tunduk pada batasan dan pertimbangan yang sama seperti tugas vision lainnya.
Semua model aktif mendukung pemrosesan PDF. Untuk dukungan PDF melalui Converse API Amazon Bedrock, lihat Dukungan PDF Amazon Bedrock.
Saat menggunakan dukungan PDF melalui Converse API, bagian dari Claude di Amazon Bedrock (Opus 4.6 dan sebelumnya), terdapat dua mode pemrosesan dokumen yang berbeda:
Converse Document Chat (Mode asli - Ekstraksi teks saja)
Claude PDF Chat (Mode baru - Pemahaman visual penuh)
Jika Claude tidak melihat gambar atau grafik dalam PDF Anda saat menggunakan Converse API, kemungkinan Anda perlu mengaktifkan flag sitasi. Tanpa itu, Converse kembali ke ekstraksi teks dasar saja.
Mulailah dengan contoh sederhana menggunakan Messages API. Anda dapat memberikan PDF kepada Claude dengan tiga cara:
documentfile_id dari Files APIPendekatan paling sederhana adalah mereferensikan PDF langsung dari 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)Respons mengembalikan analisis Claude sebagai blok teks dalam content, dengan konsumsi token dalam 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
}
}Jika Anda perlu mengirim PDF dari sistem lokal Anda atau ketika URL tidak tersedia:
import base64
import httpx
# Pertama, muat dan enkode 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")
# Alternatif: Muat dari file lokal
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Kirim ke Claude menggunakan enkode 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)Untuk PDF yang akan Anda gunakan berulang kali, atau ketika Anda ingin menghindari overhead encoding, gunakan Files API (beta):
client = anthropic.Anthropic()
# Unggah file PDF
with open("/path/to/document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Gunakan file yang diunggah dalam pesan
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)Ketika Anda mengirim PDF ke Claude, langkah-langkah berikut terjadi:
Sistem mengekstrak konten dokumen.
Claude menganalisis teks dan gambar untuk memahami dokumen dengan lebih baik.
Claude merespons, mereferensikan konten PDF jika relevan.
Claude dapat mereferensikan konten tekstual dan visual saat merespons. Anda dapat lebih meningkatkan kinerja dengan mengintegrasikan dukungan PDF dengan:
Jumlah token dari file PDF bergantung pada total teks yang diekstrak dari dokumen dan jumlah halaman:
Anda dapat menggunakan penghitungan token untuk memperkirakan biaya untuk PDF spesifik Anda.
Ikuti praktik terbaik berikut untuk hasil optimal:
Untuk pemrosesan bervolume tinggi, pertimbangkan pendekatan berikut:
Cache PDF dengan caching prompt untuk meningkatkan kinerja pada kueri berulang:
import base64
import httpx
# Pertama, muat dan enkode 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")
# Buat pesan dengan dokumen yang di-cache
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)Gunakan Message Batches API untuk memproses banyak PDF dalam satu permintaan:
import base64
import httpx
# Pertama, muat dan enkode 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")
# Buat batch permintaan yang menggunakan dokumen tersebut
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)Batch diproses secara asinkron. Untuk memeriksa progres dan mengambil hasil setelah pemrosesan selesai, lihat Pemrosesan batch.
Kemampuan vision Claude memungkinkannya memahami dan menganalisis gambar, membuka kemungkinan menarik untuk interaksi multimodal.
Jelajahi contoh praktis pemrosesan PDF dalam resep Claude Cookbook.
Lihat dokumentasi API lengkap untuk dukungan PDF.
| Supported platforms |
|
|---|
Was this page helpful?