Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az OpenAI API akkor adja vissza a 429 hibatípust insufficient_quota hibával, ha a fiókjához tartozó kreditek elfogytak, vagy túllépte a kiadási vagy használati korlátot. Ez ugyanaz az állapotkód, mint a sebességkorlátozásé, de néhány másodperc várakozás nem fogja kijavítani. A hozzáférés csak akkor tér vissza, ha valaki krediteket ad hozzá, korlátot emel, vagy a havi időszak alaphelyzetbe áll. Az OpenAI azt mondja, hogy a számlázási, költési vagy kvótahibák utáni újrapróbálkozás nem állítja vissza az API-hozzáférést, és meg kell vizsgálnia a(z) error.code elemet, hogy megtalálja a konkrét okot. További információ: Hibakódok.
Milyenek az OpenAI kvótahibái?
E hibák mindegyike a(z) 429 értéket adja vissza. A error.type még mindig lehet insufficient_quota, ezért ellenőrizze a(z) error.code elemet, hogy megtudja, melyiket kapta.
error.code |
Mit jelent ez? | A hozzáférés visszaállítása |
|---|---|---|
credit_balance_exhausted |
A szervezet nem rendelkezik előre kifizetett jóváírásokkal. | Jóváírások hozzáadása. |
organization_spend_limit_exceeded |
A szervezet elérte a havi költségkeretet az összes projektben összesítve. | Növelje vagy távolítsa el a korlátot, vagy várja meg a havi visszaállítást. |
project_spend_limit_exceeded |
A projekt elérte a havi költségkeretét. A többi projekt továbbra is működik. | Emelje vagy szüntesse meg a projekt korlátját, vagy várja meg a havi alaphelyzetbe állítást. |
organization_usage_limit_exceeded |
A szervezet elérte az OpenAI által hozzárendelt havi használati korlátot. Ez elkülönül a beállított költségkeretektől. | Kérjen magasabb jóváhagyott korlátot, vagy forduljon az OpenAI ügyfélszolgálatához. |
Hasonlítsa össze ezeket az „Elérte a sebességkorlátot” hibával, például rate_limit_exceeded és slow_down. Ezek ideiglenesek, és a rövid várakozás után végzett újrapróbálkozás általában működik. További információkért lásd: OpenAI „Rate limit reached” hibák.
OpenAI-kvótahibák kezelése
- Olvassa el a
error.codeelemet, ne csak az állapotot. Egymaga429nem mondja meg, hogy kell-e újrapróbálni. A tábla 4 kódját "stop" értékként, a lekérdezési korlát kódokat pedig "várakozás és újrapróbálkozás" értékként kezelje. - Ne próbálkozzon újra. Ne küldje el újra a kérést, és ne hagyja, hogy egy újrapróbálkozásos ciklus folyamatosan meghívja az API-t. Amíg valaki nem oldja meg a számlázási problémát, minden kérés ugyanúgy meghiúsul.
- Szüneteltesse a meghiúsuló hívásokat. Az egyik kvótahiba azt jelenti, hogy azonos szervezethez vagy projekthez tartozó következő kérések is meghiúsulnak. Kihagyhatja őket ahelyett, hogy egyenként elküldené őket, és megvárná a hibaüzenetet.
- Mondja meg a felhasználónak. Magyarázza el, hogy az AI-funkció egyelőre nem érhető el, és az alkalmazás többi része továbbra is működőképes marad.
- Riaszd magad. Naplózza a kódot magas súlyossági szinten, vagy értesítse a számlázásért felelős személyt. A javítás a kódon kívül esik, ezért valakinek tudnia kell róla.
Az OpenAI Python SDK alapértelmezés szerint 429 válaszok esetén kétszer próbálkozik újra. Bárhányszor is próbálkozik újra, a kód végül megkapja a RateLimitError számlázási kódot, és itt kell megállnia:
import logging
import openai
from openai import OpenAI
client = OpenAI()
logger = logging.getLogger(__name__)
BILLING_CODES = {
"credit_balance_exhausted",
"organization_spend_limit_exceeded",
"project_spend_limit_exceeded",
"organization_usage_limit_exceeded",
}
billing_error: str | None = None
def ask(prompt: str) -> str:
global billing_error
if billing_error:
raise RuntimeError("AI features are paused until billing is fixed.")
try:
response = client.responses.create(model="gpt-4.1", input=prompt)
return response.output_text
except openai.RateLimitError as error:
if error.code in BILLING_CODES:
billing_error = error.code
logger.critical("OpenAI billing error: %s", error.code)
raise
A jelölő mindaddig be van állítva, amíg az alkalmazás újra nem indul. Szüntesse meg azt egy másik módon, ha az alkalmazás hosszú ideig fut, például rendszergazdai művelettel, miután valaki kijavította a számlázást.
Annak tesztelése, hogy az alkalmazás kezeli-e az OpenAI-kvóta hibáit
A fejlesztés során ritkán jelenik meg kvótahiba. A tesztfiók kreditekkel rendelkezik, és Ön keveset használja. Így a kvótakezelés tesztelésének módja dönti el, hogy te találod-e meg a hibákat a felhasználóid előtt.
| Approach | Mit talál? | Ami hiányzik Önnek |
|---|---|---|
| Várjon az éles környezetre | Valódi meghibásodások | Minden, amíg egy felhasználó bele nem fut, és az AI-funkció pedig nem érhető el, amíg valaki észre nem veszi |
| Mockold az API-t a tesztjeidben, vagy hagyd, hogy a kódolási ügynök megírja a mockot | Hogy a leállítási ág fut-e | Az OpenAI valódi hibatörzse és kódjai, valamint az SDK újrapróbálkozási szabályzata. Az alkalmazásnak egy csak tesztelésre szolgáló kapcsolóra is szüksége van a mock eléréséhez. |
| Használja fel a valódi krediteket, vagy állítson be egy kis költségkeretet | Valós viselkedés | Pénzbe kerül, és letilt minden más alkalmazást, amely ugyanazt a szervezetet vagy projektet használja |
| Az alkalmazás valós forgalmának elfogása és kvótahibák visszaadása igény szerint | Valós URL-címek, valódi SDK- és újrapróbálkozási szabályzat, valamint az OpenAI saját hibaformátuma | Az alkalmazásban semmi sem változik, ezért nem teszteli a kódodat külön-külön. Arra valók az egységtesztek. |
Próbálja ki az alkalmazásán
A Dev Proxy elfogja az alkalmazás api.openai.com felé irányuló kéréseit, és OpenAI-hibákat ad vissza, miközben az alkalmazás továbbra is meghívja a valódi URL-címeket. A openai-throttling beállításkészlet összekeveri a credit_balance_exhausted hibát a sebességkorlátozási hibákkal.
insufficient_quota típussal Retry-After tér vissza, 429 fejléc nélkül, így ellenőrizheti, hogy az alkalmazás leáll-e újrapróbálkozás helyett.
Töltse le a beállításkészletet, és indítsa el vele a Dev Proxyt:
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Ha csak kvótahibákat szeretne tesztelni, szerkessze az előbeállítás openai-errors.json fájlját, és csak a credit_balance_exhausted választ tartsa meg. A költség- és használati korlátkódok teszteléséhez adjon hozzá ugyanolyan szerkezettel és egy másik code-val rendelkező válaszokat.
Ezután futtassa az alkalmazást a szokásos módon, és figyelje meg, hogy mit csinál. A Dev Proxy telepítéséhez lásd: Dev Proxy beállítása.