Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
OPENAI API mengembalikan 429 dengan "Batas laju tercapai" saat organisasi Anda mengirim lebih banyak permintaan atau lebih banyak token per menit daripada batas yang diizinkan. Batasan berlaku untuk organisasi Anda, bukan untuk setiap pengguna. Kesalahan ini bersifat sementara. Jika Anda menunggu dan mengirim permintaan lagi, biasanya berhasil. Beberapa kesalahan lain 429 dari OpenAI adalah tentang penagihan, dan kesalahan tersebut tidak akan hilang hanya dengan menunggu. Untuk informasi selengkapnya, lihat Kode kesalahan.
Seperti apa tampilan error rate limit OpenAI
| Status | Error | Apa artinya | Coba lagi? |
|---|---|---|---|
429 |
rate_limit_exceeded, permintaan per menit (RPM) |
Anda mengirim terlalu banyak permintaan dalam satu menit. | Ya, setelah Retry-After |
429 |
rate_limit_exceeded, token per menit (TPM) |
Permintaan Anda menggunakan terlalu banyak token dalam satu menit. Pesan menunjukkan batas Anda, berapa banyak token yang Anda gunakan, dan berapa banyak token yang diminta oleh permintaan. | Ya, setelah Retry-After. Permintaan yang lebih kecil membantu. |
429 |
slow_down (jenis rate_limit_error) |
Lalu lintas Anda tumbuh terlalu cepat, meskipun Anda berada dalam batas RPM dan TPM Anda. | Ya, dengan tarif lebih rendah |
503 |
server_is_overloaded (jenis service_unavailable_error) |
Server milik OpenAI sedang sibuk. | Ya, dengan jeda yang semakin lama setiap kali |
429 |
credit_balance_exhausted, kesalahan batas pengeluaran atau batas penggunaan (jenis insufficient_quota) |
Anda kehabisan kredit atau melebihi batas. | No. Lihat insufficient_quota dan credit_balance_exhausted OpenAI. |
Sebagian besar kesalahan ini memiliki status 429 yang sama, sehingga Anda tidak dapat membedakannya berdasarkan status saja. Baca error.code dalam isi respons.
Cara menangani error rate limit OpenAI
- Periksa
error.codedulu. Jika itu adalah kode penagihan seperticredit_balance_exhausted, hentikan percobaan ulang dan beri tahu pengguna. Mencoba lagi setelah terjadi kesalahan penagihan tidak akan memulihkan akses. - Ikuti
Retry-Aftersaat tersedia. Jika hilang, gunakan backoff eksponensial dengan jitter, dan batasi jumlah percobaan ulang. - Perlambat setelah
slow_down. Kurangi laju permintaan Anda, lalu naikkan kembali secara bertahap. Patokan umum OpenAI untuk TPM input di atas 1M adalah meningkatkan traffic tidak lebih dari 50% setiap 15 menit. - Kirim lebih sedikit token setelah kesalahan TPM. Perintah dan respons yang lebih pendek memungkinkan lebih banyak permintaan dapat ditangani setiap menit.
- Mundur lebih jauh setelah sebuah
503. Tingkatkan penundaan antara percobaan ulang, dan periksa halaman status OpenAI. - Beri tahu pengguna apa yang terjadi. "Sibuk, mencoba lagi dalam 5 detik" lebih baik daripada indikator loading yang tak kunjung selesai.
OpenAI Python SDK mencoba kembali kesalahan koneksi dan 408, , 409, 429dan 5xx respons 2 kali secara default, dengan backoff eksponensial singkat. Anda dapat mengubahnya dengan max_retries. Ketika percobaan ulang habis, SDK memunculkan RateLimitError untuk 429 dan InternalServerError untuk 503, sehingga kode Anda masih memerlukan rencana:
import openai
from openai import OpenAI
client = OpenAI(max_retries=3)
BILLING_CODES = {
"credit_balance_exhausted",
"organization_spend_limit_exceeded",
"project_spend_limit_exceeded",
"organization_usage_limit_exceeded",
}
def summarize(text: str) -> str | None:
try:
response = client.responses.create(model="gpt-4.1", input=text)
return response.output_text
except openai.RateLimitError as error:
if error.code in BILLING_CODES:
raise # Retrying won't help: alert and tell the user
return None # Still throttled after retries: show "busy, try again"
except openai.InternalServerError:
return None
Cara menguji bahwa aplikasi Anda menangani pembatasan laju OpenAI
Anda jarang mencapai batas permintaan OpenAI saat Anda mengembangkan. Anda satu-satunya pengguna, dan prompt Anda pendek. Jadi cara Anda menguji penanganan rate limit memutuskan apakah Anda menemukan bug sebelum pengguna Anda melakukannya.
| Approach | Apa yang Anda temukan | Yang Anda lewatkan |
|---|---|---|
| Tunggu hingga siap produksi | Kegagalan yang sebenarnya | Semuanya, sampai pengguna mengkliknya |
| Mock API dalam pengujian Anda, atau biarkan agen coding Anda menulis mock | Apakah cabang percobaan ulang Anda berjalan | Respons error dan kode error asli OpenAI, serta kebijakan percobaan ulang SDK Anda. Aplikasi Anda juga memerlukan sakelar khusus pengujian untuk mengakses mock. |
| Panggil API nyata sampai membatasi laju permintaan Anda | Perilaku riil | Anda tidak dapat memicu kesalahan tertentu sesuai permintaan, dan setiap permintaan memerlukan token |
| Mencegat lalu lintas nyata aplikasi Anda dan mengembalikan kesalahan OpenAI sesuai permintaan | URL nyata, SDK nyata Anda dan kebijakan percobaan ulang, dan format kesalahan OpenAI sendiri | Tidak ada yang berubah pada aplikasi Anda, sehingga tidak menguji kode Anda secara terisolasi. Gunakan pengujian unit untuk itu. |
Coba ini di aplikasi Anda
Dev Proxy mencegat permintaan aplikasi Anda ke api.openai.com dan mengembalikan kesalahan OpenAI, sementara aplikasi Anda terus memanggil URL nyata. Prasetel openai-throttling menyebabkan sebagian besar permintaan gagal dengan pilihan acak error TPM dan RPM rate_limit_exceeded, slow_down, credit_balance_exhausted, dan 503server_is_overloaded, dalam format OpenAI sendiri.
429 Respons pembatasan laju menyertakan header Retry-After, dan jika aplikasi Anda mencoba kembali sebelum waktu tersebut habis, Dev Proxy melaporkannya.
Unduh preset, dan mulai Dev Proxy dengannya:
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Kemudian jalankan aplikasi Anda seperti biasa dan tonton apa yang dilakukannya. Untuk menginstal Dev Proxy, lihat Menyiapkan Dev Proxy.
Untuk menguji bagaimana aplikasi Anda berperilaku saat kehabisan token per menit, berdasarkan token prompt dan token completion yang digunakan permintaan Anda, lihat Menguji batas token model bahasa.
Langkah berikutnya
Baca juga
- Insufficient_quota dan credit_balance_exhausted OpenAI: mengapa mencoba kembali tidak akan membantu
- 429 Terlalu Banyak Permintaan: apa artinya dan cara menanganinya
- Header Retry-After: berapa lama menunggu sebelum Anda mencoba kembali
- Mensimulasikan kesalahan pada API OpenAI
- LanguageModelRateLimitingPlugin