API Batch Pesan adalah cara yang kuat dan hemat biaya untuk memproses permintaan Pesan dalam volume besar secara asinkron. Pendekatan ini cocok untuk tugas yang tidak memerlukan respons segera, mengurangi biaya hingga 50% sambil meningkatkan throughput.

Anda dapat menjelajahi referensi API secara langsung, selain panduan ini.


Cara kerja API Batch Pesan

Ketika Anda mengirim permintaan ke API Batch Pesan:

  1. Sistem membuat Batch Pesan baru dengan permintaan Pesan yang disediakan.
  2. Batch kemudian diproses secara asinkron, dengan setiap permintaan ditangani secara independen.
  3. Anda dapat melakukan polling untuk status batch dan mengambil hasil ketika pemrosesan telah selesai untuk semua permintaan.

Ini sangat berguna untuk operasi massal yang tidak memerlukan hasil segera, seperti:

  • Evaluasi skala besar: Proses ribuan kasus uji secara efisien.
  • Moderasi konten: Analisis volume besar konten buatan pengguna secara asinkron.
  • Analisis data: Menghasilkan wawasan atau ringkasan untuk kumpulan data besar.
  • Pembuatan konten massal: Membuat teks dalam jumlah besar untuk berbagai tujuan (misalnya, deskripsi produk, ringkasan artikel).

Batasan batch

  • Batch Pesan dibatasi hingga 100.000 permintaan Pesan atau 256 MB dalam ukuran, mana yang tercapai lebih dulu.
  • Batch membutuhkan waktu hingga 24 jam untuk menghasilkan respons, meskipun pemrosesan mungkin selesai lebih cepat dari ini. Hasil untuk batch Anda tidak akan tersedia sampai pemrosesan seluruh batch selesai. Batch akan kedaluwarsa jika pemrosesan tidak selesai dalam 24 jam.
  • Hasil batch tersedia selama 29 hari setelah pembuatan. Setelah itu, Anda masih dapat melihat Batch, tetapi hasilnya tidak lagi tersedia untuk diunduh.
  • Batch dibatasi dalam Workspace. Anda dapat melihat semua batch—dan hasilnya—yang dibuat dalam Workspace tempat kunci API Anda berada.
  • Batas rate berlaku untuk permintaan HTTP API Batch dan jumlah permintaan dalam batch yang menunggu untuk diproses. Lihat batas rate API Batch Pesan. Selain itu, kami mungkin memperlambat pemrosesan berdasarkan permintaan saat ini dan volume permintaan Anda. Dalam kasus tersebut, Anda mungkin melihat lebih banyak permintaan kedaluwarsa setelah 24 jam.
  • Karena throughput tinggi dan pemrosesan bersamaan, batch mungkin sedikit melebihi batas pengeluaran yang dikonfigurasi Workspace Anda.

Model yang didukung

API Batch Pesan saat ini mendukung:

  • Claude 3.5 Sonnet (claude-3-5-sonnet-20240620 dan claude-3-5-sonnet-20241022)
  • Claude 3.5 Haiku (claude-3-5-haiku-20241022)
  • Claude 3 Haiku (claude-3-haiku-20240307)
  • Claude 3 Opus (claude-3-opus-20240229)

Apa yang dapat dibatch

Setiap permintaan yang dapat Anda buat ke API Pesan dapat dimasukkan dalam batch. Ini termasuk:

  • Vision
  • Penggunaan alat
  • Pesan sistem
  • Percakapan multi-giliran
  • Fitur beta apa pun

Karena setiap permintaan dalam batch diproses secara independen, Anda dapat mencampur berbagai jenis permintaan dalam satu batch.


Harga

API Batch menawarkan penghematan biaya yang signifikan. Semua penggunaan dikenakan biaya 50% dari harga API standar.

ModelInput BatchOutput Batch
Claude 3.5 Sonnet$1,50 / MTok$7,50 / MTok
Claude 3 Opus$7,50 / MTok$37,50 / MTok
Claude 3 Haiku$0,125 / MTok$0,625 / MTok

Cara menggunakan API Batch Pesan

Persiapkan dan buat batch Anda

Batch Pesan terdiri dari daftar permintaan untuk membuat Pesan. Bentuk permintaan individual terdiri dari:

  • custom_id unik untuk mengidentifikasi permintaan Pesan
  • Objek params dengan parameter API Pesan standar

Anda dapat membuat batch dengan memasukkan daftar ini ke dalam parameter requests:

Dalam contoh ini, dua permintaan terpisah dibatch bersama untuk pemrosesan asinkron. Setiap permintaan memiliki custom_id unik dan berisi parameter standar yang akan Anda gunakan untuk panggilan API Pesan.

Uji permintaan batch Anda dengan API Pesan

Validasi objek params untuk setiap permintaan pesan dilakukan secara asinkron, dan kesalahan validasi dikembalikan ketika pemrosesan seluruh batch telah selesai. Anda dapat memastikan bahwa Anda membangun input Anda dengan benar dengan memverifikasi bentuk permintaan Anda dengan API Pesan terlebih dahulu.

Ketika batch pertama kali dibuat, respons akan memiliki status pemrosesan in_progress.

JSON
{
  "id": "msgbatch_01HkcTjaV5uDC8jWR4ZsDV8d",
  "type": "message_batch",
  "processing_status": "in_progress",
  "request_counts": {
    "processing": 2,
    "succeeded": 0,
    "errored": 0,
    "canceled": 0,
    "expired": 0
  },
  "ended_at": null,
  "created_at": "2024-09-24T18:37:24.100435Z",
  "expires_at": "2024-09-25T18:37:24.100435Z",
  "cancel_initiated_at": null,
  "results_url": null
}

Melacak batch Anda

Bidang processing_status Batch Pesan menunjukkan tahap pemrosesan batch. Dimulai sebagai in_progress, kemudian diperbarui menjadi ended setelah semua permintaan dalam batch selesai diproses, dan hasil siap. Anda dapat memantau status batch Anda dengan mengunjungi Console, atau menggunakan endpoint pengambilan:

Anda dapat melakukan polling endpoint ini untuk mengetahui kapan pemrosesan telah selesai.

Mengambil hasil batch

Setelah pemrosesan batch selesai, setiap permintaan Pesan dalam batch akan memiliki hasil. Ada 4 jenis hasil:

Jenis HasilDeskripsi
succeededPermintaan berhasil. Termasuk hasil pesan.
erroredPermintaan mengalami kesalahan dan pesan tidak dibuat. Kemungkinan kesalahan termasuk permintaan tidak valid dan kesalahan server internal. Anda tidak akan ditagih untuk permintaan ini.
canceledPengguna membatalkan batch sebelum permintaan ini dapat dikirim ke model. Anda tidak akan ditagih untuk permintaan ini.
expiredBatch mencapai kedaluwarsa 24 jam sebelum permintaan ini dapat dikirim ke model. Anda tidak akan ditagih untuk permintaan ini.

Anda akan melihat ikhtisar hasil Anda dengan request_counts batch, yang menunjukkan berapa banyak permintaan yang mencapai keempat status ini.

Hasil batch tersedia untuk diunduh baik di Console maupun di results_url pada Batch Pesan. Karena ukuran hasil yang berpotensi besar, disarankan untuk streaming hasil daripada mengunduhnya sekaligus.

Hasil akan dalam format .jsonl, di mana setiap baris adalah objek JSON yang valid yang mewakili hasil dari satu permintaan dalam Batch Pesan. Untuk setiap hasil yang di-stream, Anda dapat melakukan sesuatu yang berbeda tergantung pada custom_id dan jenis hasilnya. Berikut adalah contoh set hasil:

.jsonl file
{"custom_id":"my-second-request","result":{"type":"succeeded","message":{"id":"msg_014VwiXbi91y3JMjcpyGBHX5","type":"message","role":"assistant","model":"claude-3-5-sonnet-20241022","content":[{"type":"text","text":"Halo lagi! Senang bertemu dengan Anda. Bagaimana saya bisa membantu Anda hari ini? Apakah ada hal spesifik yang ingin Anda bicarakan atau pertanyaan yang Anda miliki?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":11,"output_tokens":36}}}}
{"custom_id":"my-first-request","result":{"type":"succeeded","message":{"id":"msg_01FqfsLoHwgeFbguDgpz48m7","type":"message","role":"assistant","model":"claude-3-5-sonnet-20241022","content":[{"type":"text","text":"Halo! Bagaimana saya bisa membantu Anda hari ini? Jangan ragu untuk mengajukan pertanyaan atau beri tahu saya jika ada yang ingin Anda bicarakan."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":10,"output_tokens":34}}}}

Jika hasil Anda memiliki kesalahan, result.error akan diatur ke bentuk kesalahan standar kami.

Hasil batch mungkin tidak sesuai dengan urutan input

Hasil batch dapat dikembalikan dalam urutan apa pun, dan mungkin tidak sesuai dengan urutan permintaan saat batch dibuat. Dalam contoh di atas, hasil untuk permintaan batch kedua dikembalikan sebelum yang pertama. Untuk mencocokkan hasil dengan permintaan yang sesuai dengan benar, selalu gunakan bidang custom_id.

Praktik terbaik untuk batching yang efektif

Untuk mendapatkan hasil maksimal dari API Batch:

  • Pantau status pemrosesan batch secara teratur dan terapkan logika retry yang sesuai untuk permintaan yang gagal.
  • Gunakan nilai custom_id yang bermakna untuk memudahkan pencocokan hasil dengan permintaan, karena urutan tidak dijamin.
  • Pertimbangkan untuk memecah kumpulan data yang sangat besar menjadi beberapa batch untuk pengelolaan yang lebih baik.
  • Lakukan uji coba satu bentuk permintaan dengan API Pesan untuk menghindari kesalahan validasi.

Pemecahan masalah umum

Jika mengalami perilaku yang tidak diharapkan:

  • Verifikasi bahwa ukuran total permintaan batch tidak melebihi 256 MB. Jika ukuran permintaan terlalu besar, Anda mungkin mendapatkan kesalahan 413 request_too_large.
  • Periksa bahwa Anda menggunakan model yang didukung untuk semua permintaan dalam batch.
  • Pastikan setiap permintaan dalam batch memiliki custom_id yang unik.
  • Pastikan bahwa belum lewat 29 hari sejak waktu created_at batch (bukan waktu ended_at pemrosesan). Jika lebih dari 29 hari telah berlalu, hasil tidak akan dapat dilihat lagi.
  • Konfirmasi bahwa batch belum dibatalkan.

Perhatikan bahwa kegagalan satu permintaan dalam batch tidak mempengaruhi pemrosesan permintaan lainnya.


Penyimpanan dan privasi batch

  • Isolasi Workspace: Batch diisolasi dalam Workspace tempat mereka dibuat. Mereka hanya dapat diakses oleh kunci API yang terkait dengan Workspace tersebut, atau pengguna dengan izin untuk melihat batch Workspace di Console.

  • Ketersediaan hasil: Hasil batch tersedia selama 29 hari setelah batch dibuat, memberikan waktu yang cukup untuk pengambilan dan pemrosesan.


FAQ