Útmutató és betekintés

Rate-Limit-Aware AI API átjárók: Forma RPM, TPM, sorozatfelvételek és bérlői méltányosság a 429-es elérés előtt

Praktikus átjáróarchitektúra a lépcsőzetes LLM API 429-ek megelőzésére: normalizálja a szolgáltatói korlátokat, becsülje meg a tokennyomást a feladás előtt, lefoglalja a kvótát bérlőnként, sima forgalmi rámpákat, és tegye auditálhatóvá a szabályozást.

A 429 egy LLM-szolgáltatótól nem csak egy újrapróbálkozási jel. Az éles folyamat során gyakran bizonyítja, hogy az alkalmazás már elvesztette az irányítást a beléptetés, a bérlői méltányosság, a várakozási idő vagy a szolgáltató-specifikus kvóta elszámolása felett.

A közös javítás – az exponenciális visszalépés – szükséges, de nem teljes. A Backoff reagál, miután a szolgáltató elutasítja a forgalmat. A sebességkorlátozást figyelembe vevő AI API-átjárónak a forgalmat még azelőtt alakítania kell, hogy a kérések elhagynák a rendszert: becsülje meg a tokennyomást, lefoglalja a kvótát, izolálja a bérlőket, állítsa sorba a megfelelő munkát, utasítsa el a rossz munkát, és alkalmazkodjon a szolgáltatói korlátok változásához.

Ez a cikk egy praktikus átjárókvóta-irányítót ír le olyan csapatok számára, amelyek termelési munkaterhelést küldenek több LLM-szolgáltatónak egy egységes API-n keresztül.

Az olvasó probléma: A 429-ek többdimenziósak

Sok csapat úgy kezeli a sebességkorlátokat, mintha egyetlen kérések percenkénti számként lennének. Ez a feltételezés gyorsan megtörik az LLM API-kkal.

Tények a jelenlegi szolgáltatói dokumentációból:

  • Az OpenAI-dokumentumok, amelyek korlátai vannak, a meghirdetett percenkénti korlátnál rövidebb időtartamra érvényesíthetők, így a rövid sorozatok még akkor is meghiúsulhatnak, ha az átlagos perc biztonságosnak tűnik.
  • Az Azure OpenAI-kvóta előfizetés, régió, modell és központi telepítési típus szerint van hozzárendelve percenkénti tokenben. A TPM-nek egy telepítéshez való hozzárendelése meghatározza a kényszerített következtetési RPM-korlátokat is, és az RPM-TPM arányok modellenként változnak.
  • Az Azure OpenAI azt is megjegyzi, hogy a díjkorlátozási token számításait a rendszer a kérés beérkezésekor becsüli meg, és nem egyezik meg a végső számlázási tokenszámmal.
  • Az antropikus dokumentumok különválasztják a percenkénti kérelmeket, a percenkénti bemeneti tokeneket és a percenkénti kimeneti tokeneket. A határértékek túllépése 429-et ad vissza egy újrapróbálkozás után fejléccel.
  • Az Anthropic arra figyelmeztet, hogy a forgalom erőteljes növekedése elérheti a gyorsulási határokat, és fokozatos felfutást javasol.
  • A legtöbb Claude-modell esetében a bemeneti tokeneket gyorsítótárazó Anthropic-dokumentumok nem számítanak bele a percenkénti bemeneti token-korlátokba, ami azt jelenti, hogy az azonnali gyorsítótárazás megváltoztathatja a tényleges mozgásteret.
  • A Google Gemini API díjkorlátai a projekthasználati szintekhez vannak kötve, a magasabb szint pedig a számlázási beállításoktól, az összesített költéstől és a fizetési mérföldkövek után eltelt időtől függ.

A működési lecke egyértelmű: az OpenAI-kompatibilis kérésforma nem jelent OpenAI-kompatibilis kvótaviselkedést. A többszolgáltatós átjárónak olyan belső kvótamodellre van szüksége, amely gazdagabb, mint a „próbáld újra, ha 429”.

Tervezési cél: a beléptetés ellenőrzése átjáróvá tegye

A díjkorlátozást ismerő átjárónak öt kérdésre kell válaszolnia a kérés elküldése előtt:

  1. Melyik szolgáltató, modell, üzembe helyezés, régió, projekt vagy munkaterület fogja megkapni a kérést?
  2. Mekkora kérés, bemeneti token, kimeneti token és egyidejűségi kapacitást fogyaszthat?
  3. Melyik bérlőt, csapatot, API-kulcsot, ügyfelet vagy terhelési osztályt kell felszámítani a megosztott kapacitásért?
  4. A kérelmet most el kell fogadni, rövid ideig sorba kell helyezni, alacsonyabbra kell minősíteni, máshová kell irányítani vagy el kell utasítani?
  5. Hogyan kell egyeztetni a foglalást, miután a szolgáltató visszaküldi a tényleges használatot?

Az átjáró kvótakormányzóvá válik. Nem helyettesíti a szolgáltatói korlátokat. Láthatóvá, kiszámíthatóvá és igazságossá teszi a szolgáltatói korlátokat a saját rendszerén belül.

Hozzon létre normalizált kvótamodellt

Kezdje azzal, hogy meghatározza a belső korlátozó dimenziókat, amelyek képesek reprezentálni a főbb szolgáltatókat anélkül, hogy egy félrevezető gyűjtőkörbe kényszerítenék őket.

A határoló ajánlott méretei

  • RPM: kérések percenként.
  • Beviteli TPM: prompt, üzenet, eszköz és kontextus tokenek percenként.
  • Kimeneti TPM: percenkénti befejezési tokenek, külön lefoglalva streamelés és hosszú generációk számára.
  • Teljes TPM: olyan szolgáltatók vagy telepítések számára hasznos, amelyek kombinált tokennyomást tesznek ki.
  • Pontosidő: aktív kérések, aktív adatfolyamok vagy repülés közbeni feladatok.
  • Streamelés időtartama: a hosszú élettartamú adatfolyamok még alacsony RPM mellett is elfoglalhatják a csatlakozást és a kimeneti token szabad kapacitását.
  • Szolgáltatóspecifikus hatókör: Azure-előfizetés/régió/telepítés, Antropikus munkaterület/modellosztály, Google-projekt/szint vagy OpenAI-szervezet/projekt/modellcsoport.

Ne rejtse el a szolgáltató-specifikus méreteket. Normalizálja őket egy közös sémává, de őrizzen meg elegendő részletet ahhoz, hogy később megmagyarázza az elutasítást.

{
  "szolgáltató": "szolgáltató_a",
  "model_profile": "gyors chat",
  "provider_scope": {
    "projekt": "termék",
    "régió": "us-kelet",
    "telepítés": "chat-large-01"
  },
  "korlátok": {
    "rpm": 1200,
    "input_tpm": 800000,
    "output_tpm": 250000,
    "egyidejűség": 200
  }
}

Ezt a belső objektumot explicit módon kell konfigurálni, nem csak a modellnevekből kell kikövetkeztetni. A szolgáltatói irányítópultok, a fiókszintek, a regionális telepítések és a munkaterület-beállítások mind megváltoztathatják ugyanazon modellcsalád tényleges kapacitását.

A tokennyomás becslése a feladás előtt

A szolgáltató oldali díjkorlátozás gyakran még azelőtt megtörténik, hogy a végső számlázási felhasználás ismertté válna. Az átjárónak ugyanilyen óvatos becslést kell végeznie a forgalom elküldése előtt.

Futtatás előtti foglalási bemenetek

  • Sorozatos prompt és üzenet hossza.
  • Modellspecifikus tokenizálás és többletfeltöltés szerepekhez, eszközökhöz, képekhez vagy strukturált kimeneti utasításokhoz.
  • max_completion_tokens vagy ezzel egyenértékű kimeneti korlát.
  • Ennek a végpontnak, a bérlőnek, a modellprofilnak és a kérési osztálynak a korábbi teljesítési aránya.
  • A gyorsítótár-olvasási tokenek várható értékei, ha az azonnali gyorsítótár elérhető és mérhető.
  • A streamelés jelzője és a közvetítés várható időtartama.

A kezdéshez gyakran elegendő egy egyszerű foglalási szabály:

estimated_input_tokens = tokenize(request_messages) + model_overhead
becsült_kimeneti_tokenek = min(
  max_completion_tokens,
  p95_historical_output_tokens_for_route
)
reserved_total_tokens = becsült_bemeneti_token + becsült_kimeneti_token

Ismeretlen útvonalak esetén használjon konzervatív alapértelmezést. Stabil termelési útvonalak esetén a becsléseket folyamatosan frissítse a tényleges használat alapján.

Foglaljon le, majd egyeztetjen

A kvótafoglalások nem válhatnak állandó díjakká. Kezelje őket visszatartásként:

  1. Idézet: becsülje meg a bemeneti és kimeneti nyomást.
  2. Foglalás: feladás előtt vonja le a megfelelő token-gyűjteményekből.
  3. Elszámolás: cserélje ki a becslést a szolgáltató által jelentett használattal, ha elérhető.
  4. Visszatérítés vagy terhelés: szükség esetén a fel nem használt lefoglalt kapacitás visszaadása, vagy a túllépések felszámítása a következő időszakra.

Ez a legfontosabb a hosszú kontextusú és streaming hívások esetén. Ha csak a bemeneti TPM-et ellenőrzi a feladás előtt, egy adatfolyam sikeresen elindulhat, majd később kimeneti token nyomásba kerülhet. A kimeneti szabad tér külön lefoglalása csökkenti a közbenső meghibásodást és az elakadási kockázatot.

Használjon hierarchikus token-csoportokat a bérlői méltányosság érdekében

Egyetlen globális korlátozó védi a szolgáltatói fiókot, de nem védi a bérlőket egymástól. Egy hosszú kontextusú kötegelt munka felemésztheti a megosztott TPM-et, és a többi csapat interaktív kérései sikertelenséget okozhatnak.

Használjon hierarchikus tokencsoportokat:

szervezet
  └── bérlő
      └── csapat
          └── api_key
              └── modell_profil
                  └──szolgáltató_telepítés

A kérésnek minden releváns csoporton át kell mennie. Ezzel egyszerre több irányelvet is érvényesíthet:

  • A szervezet nem lépheti túl a szolgáltatói kapacitást.
  • A bérlő nem fogyaszthat többet, mint a szerződésben foglalt részesedése.
  • Egy API-kulcs nem haladhatja meg a tervezett környezet vagy alkalmazás korlátját.
  • A kötegelt modellprofil nem tud kiéhezni egy interaktív modellprofilból.
  • A szolgáltatói telepítést még akkor sem lehet túlterhelni, ha egy másik központi telepítésnek van tartalék kvótája.

Méltányos megosztás versus felhasználás

Javaslat: használjon súlyozott méltányos megosztást ellenőrzött sorozatfelvétellel.

A szigorú bérlőnkénti korlátok könnyen megmagyarázhatók, de a kihasználatlan kapacitást megterhelhetik. A sorozatos kölcsönzés javítja a kihasználtságot azáltal, hogy lehetővé teszi a bérlő számára, hogy ideiglenesen kihasználhassa a tétlen kvótát egy megosztott készletből. A kompromisszum az összetettség: az irányítópultoknak meg kell mutatniuk, hogy mire vállaltak garanciát, mit vettek fel kölcsön, és mikor vonták vissza a kölcsönt.

Gyakorlati szabály:

  • Minden bérlőnek biztosítson egy garantált alapállapotot.
  • Sorozatos kölcsönzés engedélyezése a fel nem használt megosztott kapacitásból.
  • Ha magasabb prioritású vagy garantált forgalom jelenik meg, igényelje vissza a kölcsönzött kapacitást.
  • Soha ne hagyja, hogy a kölcsönzött forgalom szolgáltatói szintű 429-eket hozzanak létre a garantált forgalom érdekében.

Válassza el a forgalmi osztályokat, mielőtt versengenek

Nem minden kérés érdemli meg ugyanazt a sor viselkedését. Helyezze a forgalmat modellprofilokba külön sorokkal és kvótakészletekkel.

Forgalmi osztály Tipikus irányelv Miért Interaktív csevegés Rövid sor, alacsony késleltetési költségkeret, gyors meghibásodás vagy kompatibilis tartalék A felhasználók gyorsan észreveszik a késleltetést Ügynöki munkafolyamatok Mérsékelt sor, eszköztudatos költségvetések, kimeneti kapacitás A többlépcsős hívások felerősíthetik a token nyomását Kötegelt feladatok Hosszabb sor, ütemezett simítás, alacsonyabb prioritás Általában késleltetéstűrő és tokennehéz EvalsDedikált kvóta, szünet az események alatt Hirtelen mesterséges tüskéket hozhat létre Háttér-összefoglaló Várólista vagy halasztás, szigorú TPM-korlát Hasznos, de ritkán sürgős

A sorban állás javítja a sikerességi arányt, de növeli a farok késését. Az átjárónak ezt a kompromisszumot egyértelművé kell tennie. Például egy interaktív kérés akár 300 ezredmásodpercig is várhat a kvótára, majd visszaesik vagy meghiúsul. Előfordulhat, hogy az éjszakai kötegelt munka 20 percet vár, és továbbra is sikeresnek tekinthető.

A 429-ek normalizálása egyetlen hibasémává

A 429-es szolgáltató még jó beléptetési ellenőrzés mellett is előfordul. A korlátok változhatnak, a szolgáltató becslései eltérhetnek az Önétől, és a forgalom a vártnál élesebb sorozatokban érkezhet.

Minden szolgáltató 429 normalizálása átjáró hibaobjektummá:

{
  "hiba": {
    "type": "rate_limited",
    "limiter": "output_tpm",
    "szolgáltató": "szolgáltató_a",
    "model_profile": "gyors chat",
    "provider_model": "model-x",
    "retry_after_ms": 2400,
    "bérlő_azonosítója": "bérlő_123",
    "api_key_id": "key_456",
    "request_class": "interaktív",
    "estimated_input_tokens": 4200,
    "estimated_output_tokens": 800,
    "gateway_decision": "admitted_then_provider_rejected",
    "fallback_allowed": hamis,
    "trace_id": "trace_abc"
  }
}

A kulcsmező a gateway_decision. A 429, miután az átjáró elfogadta a kérést, különbözik attól a kéréstől, amelyet az átjáró helyben utasított el a feladás előtt. Az első a korlátozó kalibrálási problémáját jelzi. A második a szándékos védelmet jelzi.

Alkalmazkodjon a szolgáltatói fejlécekből, de ne függjön tőlük

Egyes szolgáltatók hasznos fejléceket adnak vissza, például az újrapróbálkozás után vagy a fennmaradó kapacitás jelzőit. Ha elérhető, használja őket.

Javaslat: A szolgáltatói fejlécek hangolják a helyi kormányzót, ne cseréljék ki.

Ok:

  • A fejléc elérhetősége szolgáltatónként és végpontonként eltérő.
  • A fejlécek nem jeleníthetnek meg minden korlátozó dimenziót.
  • Az újrapróbálkozás azt jelzi, hogy mikor kell újra próbálkozni, nem pedig azt, hogy melyik bérlő kapjon legközelebb kapacitást.
  • A szolgáltató oldali token becslései eltérhetnek a számlázástól vagy a belső elszámolástól.

A robusztus megvalósítás a fejlécek alapján frissíti a helyi csoportok feltöltési arányát és lehűtését, miközben továbbra is érvényesíti a bérlői, API-kulcs, forgalmi osztály és szolgáltató telepítési korlátait az átjárón belül.

Rámpaszabályzók hozzáadása az áttelepítésekhez és az ütemezett feladatokhoz

Számos sebességkorlátozási esemény történik a tervezett változtatások során: egyik modellről a másikra való átállás, szolgáltatóváltás, új ügynöki munkafolyamat engedélyezése vagy ütemezett kiértékelés elindítása.

Javaslat: kezelje a forgalom növekedését ellenőrzött közzétételként.

  • A funkciójelző modell migrációja bérlő, útvonal vagy a forgalom százalékos aránya szerint.
  • Állítsa be a percenkénti növekedési plafont az új szolgáltatók telepítéséhez.
  • Fokozatosan, órákon keresztül melegítse fel a forgalmat ahelyett, hogy az összes forgalmat azonnal átkapcsolná.
  • A közzététel szüneteltetése, ha a 429-es arány, a leminősítési arány, a sormélység vagy a p95-késés átlép egy küszöböt.
  • Tartson vészhelyzeti visszaállítási útvonalat kompatibilitási szabályzattal, ne csak tartalék modellel.

Előrejelzés: amint a szolgáltatói útválasztási módok, prioritási szintek és munkaterület-szintű vezérlők egyre gyakoribbá válnak, a felfutási irányítás szabványos átjárófunkcióvá válik, nem pedig incidens-válasz szkriptként.

A tartalék egy politikai döntés, nem csak kapacitásdöntés

Ha az egyik szolgáltató 429-et ad vissza, a másik szolgáltatóhoz való irányítás lehet a megfelelő válasz. Lehet, hogy nem is biztonságos.

A tartalék módosulhat:

  • A kimenet minősége és a következő utasítások.
  • Kontextus hossza.
  • Eszközhívási viselkedés.
  • Strukturált kimeneti megbízhatóság.
  • Adatmegőrzés és tartózkodási hely.
  • Költség és késleltetés.

A kvótaszabályzónak meg kell kérdeznie egy kompatibilitási réteget, hogy engedélyezett-e a tartalék erre a kérési osztályra. Ha nem, akkor sorba kell állnia vagy meghiúsulnia kell egyértelmű helyi sebességkorlát-válasz mellett, ahelyett, hogy csendesen megváltoztatná a szemantikát.

Kvóta-irányítópultok megjelenítése, amelyek elmagyarázzák a döntéseket

Azt a kvótarendszert, amelyet senki sem ért, megkerül. Építsen irányítópultokat a működési kérdések köré:

  • Mely bérlők fogyasztják a legtöbb RPM-et, bemeneti TPM-et és kimeneti TPM-et?
  • Mely modellprofilok állnak sorba, utasítják el vagy vonulnak vissza?
  • Melyik szolgáltatói kör jelenti a szűk keresztmetszetet: projekt, régió, üzembe helyezés, munkaterület, modellosztály vagy fiókszint?
  • Milyen gyakran térnek el az átjáró becslései a szolgáltató használatától?
  • Mi az újrapróbálkozás utáni elosztás szolgáltató és korlátozó típusa szerint?
  • Mennyire hatékony mozgásteret teremtenek a gyorsítótár-olvasások?
  • Mely forgalmi osztályok kölcsönöznek sorozatkapacitást?

Az ügyfeleknek vagy partnereknek szánt termékeknél tegye ki a biztonságos kezelőszerveket:

  • Kulcsonkénti díjkorlátok.
  • csapatonkénti sorozatfelvételi korlátok.
  • Ügyfelenkénti napi korlát.
  • Vészszünet bérlő vagy kulcs esetén.
  • Figyelmeztetések 429 kiugrásról, sornövekedésről és abnormális tokennyomásról.
  • Partner API-végpontok a viszonteladói kvótakezeléshez.

Ezáltal a sebességkorlátozás egy rejtélyes szolgáltatói hibából a csapat API-irányításának auditálható részévé válik.

Megvalósítási ellenőrzőlista

1. fázis: megfigyelés és osztályozás

  • Minden híváshoz naplózza a szolgáltatót, a modellt, a telepítést, a régiót, a munkaterületet, a projektet, a bérlőt, az API-kulcsot és a kérési osztályt.
  • Rögzítse a 429-es szolgáltatókat az újrapróbálkozás után és a nyers hiba metaadatokkal.
  • A becsült és a tényleges bemeneti/kimeneti tokeneket külön rögzítse.
  • Elkülönítheti az interaktív, kötegelt, értékelő és háttérforgalmat a telemetriában.

2. fázis: helyi beléptetés ellenőrzése

  • Hozzon létre belső korlátozó objektumokat az RPM-hez, a bemeneti TPM-hez, a kimeneti TPM-hez, a teljes TPM-hez és a párhuzamossághoz.
  • Adja hozzá a vizsgálat előtti token becslését.
  • Foglaljon le kvótát a feladás előtt, és egyezzen a szolgáltatói használat megérkezése után.
  • Lokális elutasítás, ha egy kérelem nem fér bele a bérlői vagy szolgáltatói csoportba.

3. fázis: méltányosság és sorok

  • Hozzáadhat hierarchikus gyűjtőcsoportokat a szervezettől a szolgáltatói telepítésig.
  • Garantált bérlői részesedés hozzárendelése és szabályozott sorozatú kölcsönfelvétel.
  • Hozzon létre külön sorokat forgalmi osztályok szerint.
  • Állítsa be az osztályspecifikus maximális várakozási időt és a tartalék szabályokat.

4. fázis: adaptáció és műveletek

  • Használja a szolgáltató fejléceit a lehűlés és az utántöltési feltételezések beállításához.
  • Adjon hozzá rámpavezérlőket az áttelepítésekhez és az ütemezett feladatokhoz.
  • Kvóta-irányítópultok és figyelmeztetések megjelenítése.
  • Hetente tekintse át a becslési hibát és az elakadt kvótát.

Intézhető következtetés

Ha az átjáró csak a 429 másodpercet próbálja újra, a hiba után működik. Az éles szintű AI API-átjárónak meg kell akadályoznia a legtöbb sebességkorlátozási hibát azáltal, hogy eldönti, ki mit küldhet, mikor és melyik szolgáltatói kvótával szemben.

Kezdje egy normalizált korlátozó modellel, a repülés előtti jogkivonat-foglalással és a forgalmi osztályok soraival. Ezután adja hozzá a hierarchikus bérlői méltányosságot, a szolgáltató-fejléc adaptációt és a rámpaszabályzókat. Az eredmény nem csak kevesebb 429 másodperc. A mérnöki, pénzügyi és ügyféltámogatási csapatok tisztább kapacitáselosztást, kiszámíthatóbb késleltetést, biztonságosabb migrációt és sebességkorlátozási viselkedést tudnak megmagyarázni.

Kapcsolódó olvasnivalók

FAQ

Gyakran ismételt kérdések

Az AI API-átjárónak újra meg kell próbálnia a szolgáltató 429-es hibáit?
Igen, de az újrapróbálkozás legyen az utolsó réteg, ne a fő vezérlő. Használjon exponenciális visszalépési és újrapróbálkozás utáni fejléceket, ahol elérhető, de adjon hozzá átjáróoldali beléptetési vezérlést is, így a túlterhelt forgalom sorba kerül, formálódik, átirányítja vagy elutasítja, mielőtt a lépcsőzetes 429-es szolgáltatót létrehozná.
Miért kell külön követni a bemeneti TPM-et és a kimeneti TPM-et?
Egyes szolgáltatók külön bemeneti és kimeneti token korlátokat tesznek közzé, és a hosszú generációk akkor is kimeríthetik a kimeneti kapacitást, ha rendelkezésre áll a bemeneti kapacitás. A külön követés segít megakadályozni, hogy a streamek sikeresen elinduljanak, majd a kimeneti token nyomásának növekedésével elakadjanak vagy meghiúsuljanak.
A helyi token becslés elég pontos a sebesség korlátozásához?
Nem kell tökéletesnek lennie. Kellően konzervatívnak kell lennie a túlterhelés elkerülése érdekében, és folyamatosan össze kell egyeztetnie a tényleges szolgáltatóhasználattal. A túlzottan óvatos becslések alulhasználhatják a kvótát, ezért az éles rendszereknek mérniük kell a becslési hibát, és gyorsan vissza kell fizetniük a fel nem használt foglalásokat.
Mikor kell egy átjárónak a gyors meghibásodás helyett sorba állnia?
Várakozási várakozási időtűrő munkák, például kötegelt feladatok, kiértékelések és háttérfeldolgozás. Interaktív kérelmek esetén használjon rövid várakozási sor-költségvetést, majd vagy egyértelműen meghiúsul, vagy csak akkor tér vissza, ha a helyettesítő modell megfelel az útvonal kompatibilitási, költség- és házirend-követelményeinek.