Was this page helpful?
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.
Anda dapat bertanya kepada Claude tentang teks, gambar, bagan, 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 maksimal | 32 MB (bervariasi menurut platform) |
| Halaman maksimal per permintaan | 600 (100 untuk model dengan jendela konteks token 200k) |
| Format | PDF Standar (tanpa kata sandi/enkripsi) |
Kedua batas berada pada seluruh muatan permintaan, termasuk konten lain apa pun yang dikirim bersama PDF. Untuk PDF besar, pertimbangkan untuk mengunggah dengan Files API dan mereferensikan dengan file_id untuk menjaga muatan permintaan tetap kecil.
PDF padat (banyak halaman font kecil, tabel kompleks, atau grafis berat) dapat mengisi jendela konteks sebelum mencapai batas halaman. Permintaan dengan PDF besar juga dapat gagal sebelum mencapai batas halaman, bahkan saat menggunakan Files API. Coba bagi dokumen menjadi bagian-bagian; untuk file besar, karena setiap halaman diproses sebagai gambar, downsampling gambar tertanam juga dapat membantu.
Karena dukungan PDF bergantung pada kemampuan visi Claude, dukungan ini tunduk pada batasan dan pertimbangan yang sama seperti tugas visi lainnya.
Dukungan PDF saat ini didukung melalui akses API langsung dan Google Vertex AI. Semua model aktif mendukung pemrosesan PDF.
Dukungan PDF sekarang tersedia di Amazon Bedrock dengan pertimbangan berikut:
Saat menggunakan dukungan PDF melalui Converse API Amazon Bedrock, ada dua mode pemrosesan dokumen yang berbeda:
Penting: Untuk mengakses kemampuan pemahaman PDF visual penuh Claude di Converse API, Anda harus mengaktifkan kutipan. Tanpa kutipan yang diaktifkan, API kembali ke ekstraksi teks dasar saja. Pelajari lebih lanjut tentang bekerja dengan kutipan.
Converse Document Chat (Mode asli - Ekstraksi teks saja)
Claude PDF Chat (Mode baru - Pemahaman visual penuh)
Jika pelanggan melaporkan bahwa Claude tidak melihat gambar atau bagan dalam PDF mereka saat menggunakan Converse API, mereka mungkin perlu mengaktifkan flag kutipan. Tanpa itu, Converse kembali ke ekstraksi teks dasar saja.
Ini adalah batasan yang diketahui dengan Converse API. Untuk aplikasi yang memerlukan analisis PDF visual tanpa kutipan, pertimbangkan untuk menggunakan InvokeModel API sebagai gantinya.
Untuk file non-PDF seperti file .csv, .xlsx, .docx, .md, atau .txt, lihat Bekerja dengan format file lain.
Mari kita mulai 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:
Jika Anda perlu mengirim PDF dari sistem lokal Anda atau saat URL tidak tersedia:
Untuk PDF yang akan Anda gunakan berulang kali, atau saat Anda ingin menghindari overhead pengkodean, gunakan Files API:
Saat Anda mengirim PDF ke Claude, langkah-langkah berikut terjadi:
Sistem mengekstrak konten dokumen.
Claude menganalisis teks dan gambar untuk lebih memahami dokumen.
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 tergantung pada total teks yang diekstrak dari dokumen serta jumlah halaman:
Anda dapat menggunakan token counting untuk memperkirakan biaya untuk PDF spesifik Anda.
Ikuti praktik terbaik ini untuk hasil optimal:
Untuk pemrosesan volume tinggi, pertimbangkan pendekatan berikut:
Cache PDF untuk meningkatkan performa pada kueri berulang:
Gunakan Message Batches API untuk alur kerja volume tinggi:
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."},
],
}
],
},
}
]
)Lihat dokumentasi API lengkap untuk dukungan PDF.