Kegagalan API AI di Produksi

Pesan kesalahan jarang menceritakan keseluruhan masalah saat fitur AI Anda rusak pada jam 2 pagi. Saya telah menjalankan integrasi OpenAI dan Anthropic selama setahun. Saya belajar untuk mengelompokkan kegagalan berdasarkan maknanya untuk proses debugging.

Menangani Batas Kecepatan (Rate Limits)

Error 429 OpenAI memiliki penyebab yang berbeda. Anda harus memeriksa kode kesalahan untuk mengetahui cara bereaksi.

  • Batas Requests-per-minute (RPM) pulih dalam hitungan detik.
  • Batas Tokens-per-minute (TPM) pulih dalam 60 detik.
  • Kehabisan kuota bulanan akan tetap bermasalah sampai Anda menambah kredit atau siklus penagihan diatur ulang.

Jangan gunakan exponential backoff untuk masalah kuota. Itu hanya akan membuang waktu Anda.

Error 529 Anthropic berarti penyedia layanan sedang kelebihan beban. Perlakukan ini seperti error 503. Masalahnya ada di sisi mereka. Berhenti sejenak dan beri tahu tim Anda.

Menangani Error 400

Kegagalan ini biasanya adalah kesalahan Anda. Perhatikan tiga pola berikut:

  • Ketidakcocokan versi model. Anda memperbarui nama di satu tempat tetapi tidak di handler retry Anda.
  • Overflow jendela konteks (context window). Riwayat percakapan menjadi terlalu besar. Ini sering terjadi karena logika pemotongan (truncation) yang buruk.
  • Kegagalan validasi skema. Struktur JSON Anda memiliki tipe yang tidak didukung atau referensi rekursif.

Untuk memperbaikinya, catat (log) seluruh payload permintaan untuk error 400. Sensor data pengguna terlebih dahulu. Isi respons akan memberi tahu Anda dengan tepat field mana yang gagal.

Menangani Timeout

Timeout sulit dilacak karena penyedia layanan tidak melihat adanya masalah.

  • Connect timeout. Handshake gagal. Ini terjadi saat terjadi gangguan layanan (brownout) penyedia atau masalah DNS. Periksa jaringan keluar (outbound) Anda.
  • Read timeout. Model sudah mulai tetapi tidak selesai. Aplikasi Anda harus dapat menangani output streaming parsial.
  • Gateway timeout (504). Proxy Anda mengalami timeout terlebih dahulu. Permintaan mungkin masih berjalan di sisi penyedia. Gunakan deduplikasi sebelum Anda mencoba lagi.

Untuk debugging, pisahkan connect timeout dari read timeout Anda. Catat time-to-first-token untuk menemukan di mana letak latensinya.

Menangani Masalah Penyedia

  • Error 500 sering kali selesai dengan satu kali percobaan ulang setelah dua detik.
  • Error 503 berarti layanan sedang menurun (degraded). Jika halaman status penyedia menunjukkan adanya insiden, gunakan circuit breaker.
  • Selalu catat versi model mana yang gagal. Model yang berbeda memiliki tingkat keandalan yang berbeda.

Berhentilah langsung berpindah dari log ke Slack. Periksa halaman status penyedia terlebih dahulu. Ini akan menghemat 20 menit kepanikan Anda.

Sumber: https://dev.to/void_stitch/production-ai-api-failures-by-category-what-429s-529s-and-timeouts-are-actually-telling-you-5bo1

Komunitas belajar opsional: https://t.me/GyaanSetuAi