Skip to main content
Untuk permintaan yang memakan waktu lebih dari beberapa detik, yang biasa terjadi pada aplikasi AI, kami telah mengembangkan sistem antrian. Sistem ini menawarkan kontrol terperinci untuk mengelola lonjakan lalu lintas, membatalkan permintaan jika diperlukan, dan memantau status permintaan Anda dalam antrian. Ini juga menghilangkan kebutuhan untuk menangani permintaan HTTP yang berjalan lama.

Titik Akhir Antrian

Anda dapat mengakses semua fitur antrian melalui titik akhir berikut: Misalnya, untuk mengirim permintaan menggunakan curl dan menambahkannya ke antrian:
Berikut adalah contoh respons yang menyertakan request_id:
Payload menyertakan request_id dan menyediakan URL untuk memeriksa status, membatalkan, atau mengambil respons, menyederhanakan alur kerja Anda tanpa pengembangan titik akhir tambahan.

Status Permintaan

Untuk memantau kemajuan permintaan Anda, gunakan titik akhir yang disediakan dengan ID permintaan unik Anda. Ini memungkinkan Anda untuk melacak status, posisi antrian, atau mengambil respons setelah siap.

Penggunaan Titik Akhir

Contoh Respons

Saat permintaan Anda berada di antrian, Anda akan menerima respons seperti ini:

Status yang Mungkin

Permintaan Anda dapat berada di salah satu dari tiga status:
  • IN_QUEUE: Menunjukkan permintaan sedang menunggu untuk diproses.
    • queue_position: Menampilkan posisi Anda dalam antrian.
    • response_url: URL untuk mengambil respons setelah pemrosesan selesai.
  • IN_PROGRESS: Permintaan sedang diproses.
    • logs: Log terperinci (jika diaktifkan) yang menunjukkan langkah-langkah pemrosesan.
    • response_url: Di mana respons akhir akan tersedia.
  • COMPLETED: Pemrosesan telah selesai.
    • logs: Log yang merinci seluruh proses.
    • response_url: Tautan langsung ke respons Anda yang telah selesai.

Mengaktifkan Log

Log memberikan wawasan tentang pemrosesan permintaan. Log dinonaktifkan secara default tetapi dapat diaktifkan dengan parameter kueri:
Setiap entri log meliputi:
  • message: Deskripsi acara.
  • level: Tingkat keparahan (misalnya, INFO, ERROR).
  • source: Asal log.
  • timestamp: Waktu log dibuat.

Pemantauan Waktu Nyata

Untuk pembaruan berkelanjutan, gunakan titik akhir streaming:
Ini memberikan pembaruan status waktu nyata dalam format text/event-stream hingga permintaan selesai.

Webhooks

Jika Anda lebih suka diberitahu daripada melakukan polling, sertakan parameter kueri webhook saat mengirim permintaan. Sunra akan melakukan POST hasil akhir ke URL tersebut setelah permintaan mencapai status terminal, sehingga Anda tidak perlu menjaga koneksi tetap terbuka atau menjadwalkan polling.

Mengaktifkan Webhooks

Tambahkan parameter kueri webhook yang dikodekan URL ke endpoint pengiriman:
Kodekan URL webhook (mis. https%3A%2F%2F...) dan pastikan Sunra dapat menjangkaunya; HTTPS sangat dianjurkan. Respons pengiriman tidak berubah — Anda tetap menerima request_id dan URL status/cancel/response yang sama.

Kapan Webhook Dipicu

Sunra memanggil webhook Anda hanya pada peristiwa terminal:
  • succeeded — permintaan selesai dan output disertakan dalam payload.
  • failed — permintaan mengalami kesalahan dan detail kesalahan disertakan dalam payload.
Status menengah (IN_QUEUE, IN_PROGRESS) tidak memicu webhook. Jika Anda juga membutuhkan pembaruan progres, kombinasikan webhook dengan endpoint streaming atau polling yang dijelaskan di atas.

Format Permintaan

Sunra mengirim permintaan POST ke URL webhook Anda dengan: Endpoint Anda harus merespons dengan kode status 2xx dalam waktu 5 detik. Konfirmasi cepat dan alihkan pekerjaan berat ke job latar belakang — respons yang lambat dianggap gagal dan memicu percobaan ulang.

Payload

Peristiwa sukses:
Peristiwa gagal mengganti output dengan error. Isi tepat error bervariasi tergantung jenis kegagalan — contoh di bawah menunjukkan salah satu bentuk umum:

Perilaku Percobaan Ulang

Pengiriman webhook bersifat at-least-once. Jika endpoint Anda timeout (5 dtk) atau mengembalikan status non-2xx, Sunra mencoba ulang dengan backoff eksponensial — hingga 3 kali percobaan ulang dengan penundaan mulai dari 10 detik dan dibatasi pada 30 detik. Setelah percobaan ulang terakhir, kegagalan dicatat dan tidak ada upaya lebih lanjut. Karena percobaan ulang dapat mengirimkan peristiwa yang sama lebih dari sekali, handler Anda harus idempoten — gunakan field id sebagai kunci deduplikasi.

Praktik Terbaik

  • Gunakan HTTPS dan verifikasi bahwa lalu lintas mencapai endpoint yang Anda harapkan.
  • Tanggapi 2xx segera dan proses payload secara asinkron.
  • Perlakukan pengiriman sebagai at-least-once dan dedup berdasarkan id.
  • Gabungkan webhook dengan endpoint polling atau streaming jika Anda memerlukan pembaruan progres sebelum peristiwa terminal.

Membatalkan Permintaan

Jika permintaan Anda masih dalam antrian, Anda dapat membatalkannya dengan:

Mengambil Respons

Setelah permintaan Anda COMPLETED, ambil respons menggunakan:
Titik akhir ini juga menyediakan log untuk ditinjau.

Integrasi yang Disederhanakan dengan Klien Sunra

Klien Sunra mengotomatiskan pelacakan status, menyederhanakan pengembangan aplikasi dengan fungsi Sunra.

Batas Laju

Untuk memastikan penggunaan yang adil dan stabilitas sistem, titik akhir API kami tunduk pada batas laju berikut: Jika Anda melebihi batas ini, Anda akan menerima respons 403 Forbidden. Kami merekomendasikan untuk menerapkan mekanisme coba lagi dengan backoff eksponensial untuk menangani kasus-kasus ini.