Fitur ini memenuhi syarat untuk Zero Data Retention (ZDR). Ketika organisasi Anda memiliki pengaturan ZDR, data yang dikirim melalui fitur ini tidak disimpan setelah respons API dikembalikan.
Anda dapat bertanya kepada Claude tentang teks, gambar, grafik, dan tabel apa pun dalam PDF yang Anda berikan. Beberapa contoh kasus penggunaan:
Claude dapat 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 untuk model dengan jendela konteks 200k 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.
PDF yang padat (banyak halaman dengan font kecil, tabel kompleks, atau grafik yang berat) dapat memenuhi jendela konteks sebelum mencapai batas halaman. Permintaan dengan PDF besar juga dapat gagal sebelum mencapai batas halaman, bahkan saat menggunakan Files API. Cobalah membagi dokumen menjadi beberapa bagian; untuk file besar, karena setiap halaman diproses sebagai gambar, menurunkan resolusi (downsampling) gambar yang disematkan 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 tersedia di Claude API, Claude Platform on AWS, Amazon Bedrock (lihat Dukungan PDF Amazon Bedrock), Vertex AI, dan Microsoft Foundry. Semua model aktif mendukung pemrosesan PDF.
Saat menggunakan dukungan PDF melalui Converse API dari Bedrock, terdapat dua mode pemrosesan dokumen yang berbeda:
Penting: Untuk mengakses kemampuan pemahaman PDF visual penuh dari Claude di Converse API, Anda harus mengaktifkan sitasi. Tanpa sitasi diaktifkan, API akan kembali ke ekstraksi teks dasar saja. Pelajari lebih lanjut tentang bekerja dengan sitasi.
Converse Document Chat (Mode asli - Hanya ekstraksi teks)
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 akan kembali ke ekstraksi teks dasar saja.
Ini adalah kendala yang diketahui pada Converse API. Untuk aplikasi yang memerlukan analisis PDF visual tanpa sitasi, 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 APIDi Amazon Bedrock dan Vertex AI, saat ini hanya sumber yang dienkode base64 yang tersedia.
Pendekatan paling sederhana adalah mereferensikan PDF langsung dari URL:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
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)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).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-4-8",
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:
client = anthropic.Anthropic()
# Unggah file PDF
with open("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-4-8",
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 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 bergantung pada total teks yang diekstrak dari dokumen serta jumlah halaman:
Anda dapat menggunakan penghitungan token untuk memperkirakan biaya untuk PDF spesifik Anda.
Ikuti praktik terbaik berikut untuk hasil yang optimal:
Untuk pemrosesan bervolume tinggi, pertimbangkan pendekatan berikut:
Cache PDF untuk meningkatkan kinerja pada kueri berulang:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
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."},
],
}
],
)Gunakan Message Batches API untuk alur kerja bervolume tinggi:
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "doc1",
"params": {
"model": "claude-opus-4-8",
"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."},
],
}
],
},
}
]
)Jelajahi contoh praktis pemrosesan PDF dalam resep cookbook.
Lihat dokumentasi API lengkap untuk dukungan PDF.
Was this page helpful?