Fallback Otomatis Antar Model AI Saat Provider Down
Cara membuat aplikasi AI tetap jalan saat satu provider error atau kena rate limit, dengan retry, model cadangan, cooldown, dan contoh konfigurasi LiteLLM.
Jawaban singkat
Fallback otomatis berarti aplikasi mencoba ulang dengan jeda saat API model AI gagal, lalu pindah ke model atau provider cadangan bila kegagalan berlanjut. Cara paling rapi adalah lewat AI gateway seperti LiteLLM, dengan batas waktu, cooldown, dan pengujian rutin.
Daftar isi
Fallback otomatis adalah mekanisme yang membuat aplikasi berpindah ke model AI cadangan ketika model utama gagal menjawab, tanpa menunggu kamu turun tangan.
Kenapa ini penting? Hampir semua aplikasi AI modern bergantung pada API pihak ketiga. Provider sesekali mengalami gangguan, kelebihan beban, atau membatasi laju permintaan. Kalau chatbot pelangganmu hanya punya satu jalur, gangguan di provider berarti chatbot ikut mati. Dengan fallback, pelanggan mungkin mendapat jawaban dari model lain yang sedikit berbeda gayanya, tetapi layanan tetap berjalan.
Kegagalan apa saja yang perlu ditangani?
Tidak semua error perlu disikapi sama. Sebagian cukup dicoba ulang, sebagian perlu pindah model, dan sebagian justru tidak boleh dicoba ulang karena kesalahannya ada di permintaanmu.
| Jenis kegagalan | Tanda umum | Tindakan yang tepat |
|---|---|---|
| Rate limit | HTTP 429 | Tunggu sesuai petunjuk lalu coba ulang, atau pindah ke model lain |
| Server provider bermasalah | HTTP 500, 502, 503 | Coba ulang dengan jeda, lalu fallback |
| Provider kelebihan beban | Misalnya HTTP 529 di API Anthropic | Coba ulang dengan jeda, lalu fallback |
| Waktu habis | Tidak ada respons dalam batas waktu | Fallback ke model yang lebih cepat |
| Konteks terlalu panjang | Error panjang konteks | Pindah ke model dengan konteks lebih besar |
| Permintaan salah atau kunci tidak valid | HTTP 400, 401, 403 | Jangan coba ulang, perbaiki konfigurasi |
Membedakan kelompok terakhir penting. Mencoba ulang permintaan yang memang salah hanya membuang waktu dan biaya, dan bisa membuat kuotamu habis lebih cepat.
Tiga lapis pertahanan
Lapis 1: Retry dengan jeda
Banyak gangguan berlangsung singkat. SDK resmi seperti openai-python sudah melakukan retry otomatis untuk error tertentu (secara default 2 kali, bisa diubah dengan max_retries). Prinsipnya: tunggu sebentar, coba lagi, dan perpanjang jeda setiap kali gagal (exponential backoff). Jangan retry tanpa jeda, karena kamu justru menambah beban provider yang sedang kewalahan.
Lapis 2: Model atau provider cadangan
Kalau retry tetap gagal, pindahkan permintaan ke model lain. Urutan yang umum: model utama, lalu model sejenis dari provider berbeda, lalu model lokal atau model lebih kecil sebagai jalur terakhir. Memilih cadangan dari provider berbeda lebih tangguh daripada model lain dari provider yang sama, karena gangguan sering terjadi di level provider.
Lapis 3: Cooldown
Kalau satu jalur gagal berkali-kali dalam waktu singkat, berhenti mencobanya untuk sementara. Pola ini mirip circuit breaker: permintaan berikutnya langsung diarahkan ke cadangan tanpa menunggu timeout di jalur yang jelas sedang bermasalah. Setelah jeda tertentu, jalur utama dicoba lagi.
Contoh konfigurasi dengan LiteLLM
Menulis semua logika di atas sendiri bisa, tetapi lebih rapi bila diletakkan di AI gateway, sehingga setiap aplikasi otomatis mendapat perlindungan yang sama. Dengan LiteLLM Proxy (cara pasangnya di panduan memasang LiteLLM), konfigurasinya kira-kira begini:
model_list:
- model_name: utama
litellm_params:
model: openai/NAMA_MODEL_UTAMA
api_key: os.environ/OPENAI_API_KEY
- model_name: cadangan
litellm_params:
model: anthropic/NAMA_MODEL_CADANGAN
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: darurat
litellm_params:
model: ollama_chat/llama3.2:3b
api_base: http://IP_SERVER_OLLAMA:11434
litellm_settings:
num_retries: 2
request_timeout: 30
router_settings:
fallbacks: [{"utama": ["cadangan", "darurat"]}]
allowed_fails: 3
cooldown_time: 60
Aplikasi cukup memanggil model utama. Bila gagal setelah retry, LiteLLM mencoba cadangan, lalu darurat. Jalur yang gagal lebih dari allowed_fails kali dalam rentang cooldown_time detik akan dilewati sementara. Dokumentasi LiteLLM juga menyediakan context_window_fallbacks untuk kasus konteks terlalu panjang dan content_policy_fallbacks untuk penolakan kebijakan konten.
Hal yang sering terlupa
- Batas waktu yang realistis. Tanpa timeout, permintaan bisa menggantung lama sebelum fallback sempat berjalan. Sesuaikan dengan jenis tugas: chat butuh cepat, ringkasan dokumen panjang boleh lebih lama.
- Streaming. Kalau jawaban sudah setengah terkirim lalu putus, pindah model di tengah jalan bisa membuat jawaban ganda atau tidak nyambung. Tentukan apakah aplikasi mengulang dari awal atau menampilkan pesan error yang sopan.
- Biaya cadangan. Model cadangan bisa lebih mahal per token. Pantau seberapa sering fallback terjadi agar tagihan tidak mengejutkan. Tips menekan biaya ada di cara menghemat biaya token API.
- Data sensitif. Kalau data tertentu hanya boleh diproses model lokal, jangan masukkan provider eksternal ke rantai fallback-nya.
- Pesan terakhir untuk pengguna. Saat semua jalur gagal, tampilkan pesan yang jelas dan tawarkan jalur lain, misalnya kontak admin, daripada error teknis.
Bagaimana menguji fallback?
Fallback yang tidak pernah diuji sering gagal tepat saat dibutuhkan. Dokumentasi LiteLLM per 7 November 2026 menyebut flag simulasi fallback kini hanya untuk pemanggilan SDK langsung, sehingga untuk proxy kamu perlu memicu error sungguhan di lingkungan uji. Caranya sederhana:
- Siapkan salinan konfigurasi di server staging.
- Isi kunci API model utama dengan nilai salah, atau arahkan
api_baseke alamat yang tidak aktif. Kunci salah menghasilkan error 401, jadi cek apakah versi LiteLLM-mu mengalihkan error jenis ini. Alamat yang tidak aktif lebih mirip gangguan sungguhan. - Kirim permintaan dan periksa log: apakah retry terjadi, lalu berpindah ke cadangan?
- Ukur waktu total sampai jawaban diterima. Kalau terlalu lama, turunkan timeout atau jumlah retry.
- Ulangi pengujian setiap kali mengganti model atau versi LiteLLM.
Prinsip yang sama berlaku untuk server sendiri. Konsep redundansi yang lebih luas dibahas di apa itu high availability.
Pertanyaan yang sering diajukan
Apakah fallback bisa dipasang tanpa AI gateway?
Bisa, dengan menulis logika retry dan percabangan di kode aplikasi. Tetapi kalau kamu punya beberapa aplikasi, gateway membuat aturannya cukup diatur di satu tempat.
Berapa banyak model cadangan yang ideal?
Untuk sebagian besar bisnis, satu cadangan dari provider berbeda ditambah satu jalur darurat sudah cukup. Terlalu banyak cadangan membuat waktu tunggu saat gangguan jadi panjang.
Apakah fallback juga membantu saat kuota bulanan habis?
Ya, bila error kuota dikenali sebagai kegagalan yang dialihkan. Tetapi lebih baik pantau pemakaian dan pasang peringatan anggaran agar kuota tidak habis tanpa disadari.


