Files API memungkinkan Anda mengunggah dan mengelola file untuk digunakan dengan Claude API tanpa mengunggah ulang konten pada setiap permintaan. Ini sangat berguna saat menggunakan alat eksekusi kode untuk menyediakan input (misalnya, dataset dan dokumen) dan kemudian mengunduh output (misalnya, grafik). Anda dapat menjelajahi referensi API secara langsung, selain panduan ini.
Files API berada dalam tahap beta. Hubungi kami melalui formulir umpan balik untuk berbagi pengalaman Anda dengan Files API.
Fitur ini tidak memenuhi syarat untuk Zero Data Retention (ZDR). Data disimpan sesuai dengan kebijakan retensi standar fitur ini.
Mereferensikan file_id dalam permintaan Messages didukung pada semua model yang mendukung tipe file yang diberikan. Gambar didukung pada semua model Claude saat ini. Untuk PDF dan tipe file lainnya dengan alat eksekusi kode, lihat halaman yang ditautkan untuk dukungan model.
Files API tersedia di Claude API, Claude Platform di AWS, dan Microsoft Foundry. Di Microsoft Foundry, Files API memerlukan deployment Hosted on Anthropic. Saat ini belum tersedia di Amazon Bedrock atau Google Cloud.
Files API menyediakan pendekatan buat-sekali, gunakan-berkali-kali untuk bekerja dengan file:
file_id yang unikfile_id alih-alih mengunggah ulang kontenUntuk menggunakan Files API, Anda perlu menyertakan header fitur beta: anthropic-beta: files-api-2025-04-14. SDK menambahkan header ini secara otomatis saat Anda memanggil metode pada namespace beta.files, sehingga contoh SDK di halaman ini tidak meneruskannya secara eksplisit untuk operasi file. Permintaan Messages yang mereferensikan file memang memerlukannya, yang diteruskan oleh contoh SDK melalui parameter betas mereka.
Unggah file untuk direferensikan dalam panggilan API di masa mendatang:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)
file_id = uploaded.id
print(file_id)Respons dari pengunggahan file mencakup:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}downloadable bernilai false untuk file yang Anda unggah. Hanya file yang dibuat oleh skills atau alat eksekusi kode yang dapat diunduh. Lihat Mengunduh file.
Setelah diunggah, referensikan file dengan meneruskan id dari respons unggahan sebagai file_id:
response = client.beta.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Please summarize this document for me."},
{
"type": "document",
"source": {
"type": "file",
"file_id": file_id,
},
},
],
}
],
betas=["files-api-2025-04-14"],
)
print(response)Files API mendukung berbagai tipe file yang sesuai dengan tipe blok konten yang berbeda:
| Tipe file | Tipe MIME | Tipe blok konten | Kasus penggunaan |
|---|---|---|---|
application/pdf | document | Analisis teks, pemrosesan dokumen | |
| Teks biasa | text/plain | document | Analisis teks, pemrosesan |
| Gambar | image/jpeg, image/png, image/gif, image/webp | image | Analisis gambar, tugas visual |
| Dataset, lainnya | Bervariasi | container_upload | Menganalisis data, membuat visualisasi |
Untuk PDF dan file teks, gunakan blok konten document:
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
},
"title": "Document Title", // Optional
"context": "Context about the document", // Optional
"citations": { "enabled": true } // Optional, enables citations
}Untuk gambar, gunakan blok konten image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Untuk mengirim file ke alat eksekusi kode, gunakan blok konten container_upload:
{
"type": "container_upload",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
}Untuk tipe file yang tidak didukung oleh blok document (misalnya, .docx dan .xlsx), konversikan file tersebut ke teks biasa dan sertakan kontennya langsung dalam pesan Anda. File yang sudah berupa teks biasa, seperti file .csv dan .md, dapat dibaca dengan cara ini atau diunggah melalui Files API dengan tipe konten text/plain secara eksplisit. Untuk menganalisis dataset alih-alih membacanya sebagai teks, unggah dataset tersebut untuk alat eksekusi kode menggunakan blok container_upload.
Contoh berikut membaca file teks dan mengirim isinya sebagai teks biasa:
client = anthropic.Anthropic()
# Baca file teks
with open("document.txt") as f:
text_content = f.read()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the document content:\n\n{text_content}\n\nPlease summarize this document.",
}
],
}
],
)
print(response.content[0].text)Untuk file .docx yang berisi gambar, konversikan terlebih dahulu ke format PDF, lalu gunakan dukungan PDF untuk memanfaatkan penguraian gambar bawaan. Ini memungkinkan penggunaan sitasi dari dokumen PDF.
Ambil daftar file yang telah Anda unggah. Endpoint ini dipaginasi: setiap permintaan mengembalikan hingga limit file (20 secara default), dan parameter before_id serta after_id mengambil halaman yang berdekatan. Lihat referensi List Files API. SDK mengembalikan halaman pertama dan menyediakan helper paginasi otomatis. Contoh CLI membatasi total dengan --max-items:
client = anthropic.Anthropic()
files = client.beta.files.list()
print(files)Ambil informasi tentang file tertentu:
file = client.beta.files.retrieve_metadata(file_id)
print(file)Hapus file dari workspace Anda:
client.beta.files.delete(file_id)Unduh file yang dibuat oleh skills atau alat eksekusi kode. File yang Anda unggah tidak dapat diunduh. file_id dari file yang dihasilkan muncul di blok konten code_execution_tool_result dari respons Messages yang membuatnya:
file_content = client.beta.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")File hanya dapat diunduh jika metadatanya menunjukkan "downloadable": true, yang berlaku untuk file yang dibuat oleh skills atau alat eksekusi kode. Mengunduh file yang Anda unggah akan mengembalikan error 400.
DELETE /v1/files/{file_id}Error umum saat menggunakan Files API meliputi:
file_id yang ditentukan tidak ada atau Anda tidak memiliki akses ke file tersebut"downloadable": false dan tidak dapat diunduh. Hanya file yang dibuat oleh skills atau alat eksekusi kode yang dapat diunduh/v1/messages)<, >, :, ", |, ?, *, \, /, atau karakter Unicode 0-31){
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}Operasi Files API gratis:
Konten file yang digunakan dalam permintaan Messages dikenakan biaya sebagai token input.
Selama periode beta:
Proses PDF dengan Claude. Ekstrak teks, analisis grafik, dan pahami konten visual dari dokumen Anda.
Jalankan kode Python dan bash dalam container sandbox untuk menganalisis data, menghasilkan file, dan mengiterasi solusi.
Proses dan analisis input visual serta hasilkan teks dan kode dari gambar.
Was this page helpful?