Kaj so omejitve hitrosti API-ja LLM?
Omejitev hitrosti tukaj je zgornja meja na vedro v fiksnem oknu: 600 klicev na ključ in 1800 na organizacijo vsako minuto, z največ 8 zahtevami v teku na enem ključu.
Kaj je omejitev hitrosti na tem API-ju
Omejitev hitrosti je tukaj zgornja meja na "vedro" znotraj fiksnega časovnega okna. Omejevalnik šteje zahtevo znotraj procesa API-ja, prve spusti skozi in naslednjo zavrne s HTTP 429. Ni žetonskega vedra, ni puščajočega vedra in ni skupnega števca v celotnem gruči: vedro je ime, omejitev in okno, in vsaka številka na strani z omejitvami je prikazana iz istega objekta, ki ga bere sam omejevalnik, namesto da bi bila vtipkana v dokument.
Vedra s svojimi številkami
Vedra za sklepanje sta tista, ki jih sreča večina klicateljev. key_chat omogoča 600 klicev sklepanja na ključ API v enominutnem oknu; org_chat omogoča 1800 klicev sklepanja v celotni organizaciji v istem minutnem oknu. Oba morata biti uspešna, da se klic nadaljuje, in to je namerno in ne odvečno: en hrupen ključ ne more porabiti celotnega proračuna organizacije, in ena zasedena organizacija ne more biti izstradana z enim samim ključem, ki šteje samo zase.
API platforme se šteje ločeno. platform omogoča 300 klicev na ključ na minuto za branje in pisanje organizacije — ključi, uporaba, sledi, politike. Javne površine imajo svoja vedra, ki temeljijo na IP-ju: public_chat omogoča 20 anonimnih klicev igrišča na IP naslov na uro, public_card_request omogoča 5 zahtev za kartice modelov iz javnega obrazca na IP na uro, in auth omogoča 20 poskusov prijave, registracije, obnovitve gesla in ponastavitve na IP v petnajstminutnem oknu.
Ena vrstica v tej tabeli je opozorilo in ne kontrola. public_page je definirana z omejitvijo 300 zahtev na uro na IP, in nobena pot zahteve na tej uvedbi je ne preverja. Natisnjena je z oznako "ni uveljavljeno", ker številka v dokumentaciji, ki je nič ne uporablja, ni omejitev, in skrivanje vrzeli bi zmanjšalo verodostojnost vsake druge številke na strani.
Kaj dejansko vsebuje zavrnitev
Zavrnjena zahteva je HTTP 429 z vrsto rate_limit_error in kodo rate_limit_exceeded. Ta uvedba ne nastavi glave retry-after in sploh nobenih glav x-ratelimit, zato je telo odziva edina ura, ki jo dobite. Kjer omejevalnik ve, kdaj se njegovo okno konča, se sporočilo konča s tem trenutkom v ISO 8601, na primer časovni žig Retry after. Za omejitev na organizacijo sporočilo ne navaja nobenega časa, zato je eksponentni umik edina poštena strategija. Ponovni poskus prej ne more uspeti: števec se premakne šele, ko se okno obrne.
Tudi sočasnost je omejena
Naenkrat je lahko v teku največ 8 zahtev na enem ključu API. Štetje se vodi na ključ in ne na organizacijo, poveča se, ko klic vstopi v obdelovalnik klepeta in zmanjša, ko se konča, in zahteva nad omejitvijo je takoj zavrnjena z istim 429. Za njo ni čakalne vrste, kar je del, ki ga ljudje pogrešajo: prekomerno sočasna zahteva ni upočasnjena, ampak je zavrnjena.
Zakaj so okna na proces
Okna živijo v pomnilniku procesa API. Vsakih 15 sekund in ob zaustavitvi se zapišejo nazaj v tabelo rate_limits in se obnovijo ob zagonu procesa, tako da ponovni zagon nadaljuje okno namesto da bi dodelil nov proračun. Posledica je navedena in ne odkrita: števec je na vozlišče API, tako da dve vozlišči API podvojita vsako učinkovito omejitev. Skupna različica bi potrebovala shrambo, ki je še nič ne bere — REDIS_URL je rezerviran zanjo in neuporabljen, zato je praktični nasvet, da zaženete eno vozlišče API ali zavestno sprejmete omejitve na vozlišče.
Kaj ni omejitev hitrosti
Tri zavrnitve so videti kot dušenje in niso. Dnevna zgornja meja porabe za organizacijo odgovori 402 budget_exceeded, preden se oceni katera koli končna točka; to je denar, ne hitrost. Cenovna zgornja meja na milijon žetonov odstrani končno točko iz nabora kandidatov med usmerjanjem, namesto da bi zavrnila zahtevo, tako da klic še vedno uspe na cenejši končni točki. In 409 no_endpoint_for_policy je filter za rezidenco, ki se noče sprostiti; ponovni poskus ničesar ne spremeni, ker ista zahteva ne uspe na enak način. Samo 429 je vredna ponovnega poskusa z umikom.
Telesa zahtev so omejena na 1 MB in potrjena, preden se zgodi karkoli drugega, kar je omejitev velikosti in ne omejitev hitrosti, in sledi sklada se beležijo, namesto da bi se vrnile klicatelju.
Kako načrtovati glede na omejitve
Preštejte, kaj vaša integracija dejansko pošlje na ključ na minuto, in ne pozabite, da dokončanje pretakanja drži eno prosto mesto za celotno trajanje. Če več storitev deli en ključ, si delijo njegovih 600 klicev in njegovih 8 sočasnih mest; ločeni ključi pod eno organizacijo še vedno skupaj dosežejo zgornjo mejo 1800 klicev organizacije. Preden nastavite, preberite stran z omejitvami, saj je prikazana iz tabele uveljavljanja, in obravnavajte imena vedra kot besednjak, na katerem naj se razveja vaše obravnavanje napak: ključ, organizacija, IP in platforma vsak ne uspe drugače in le nekateri vam povedo, kdaj se vrniti.
Če vaša delovna obremenitev ne more ustrezati tem številkam, je pošten zaključek, da ta uvedba še ni dimenzionirana zanjo. Tabela je javna, pove, katere vrstice so uveljavljene, in omejitev, ki jo lahko preberete vnaprej, je vredna več kot tista, ki jo odkrijete v proizvodnji.
Pogosto zastavljena vprašanja
Koliko API klicev lahko opravim na minuto?
Dve zgornji meji veljata hkrati in obe morata biti uspešni. key_chat omogoča 600 klicev sklepanja na ključ API v enominutnem oknu, org_chat pa 1800 klicev sklepanja v celotni organizaciji v istem oknu. Poleg tega je lahko v teku največ 8 zahtev na enem ključu hkrati, šteto na ključ in ne na organizacijo, in zahteva nad omejitvijo je takoj zavrnjena s 429 rate_limit_exceeded in brez čakalne vrste. Stran z omejitvami je prikazana iz objekta, ki ga bere omejevalnik, zato so te številke tiste, ki so uveljavljene, in ne povzetek.
Ali dobim glavo Retry-After pri 429?
Ne. Ta uvedba ne nastavi glave retry-after in nobenih glav x-ratelimit, zato je telo edina ura. Kjer omejevalnik ve, kdaj se njegovo okno konča, se sporočilo konča s tem trenutkom v ISO 8601; sporočilo na organizacijo ne navaja nobenega časa, zato je eksponentni umik strategija. Ponovni poskus, preden se okno obrne, ne more uspeti, ker se števec premakne šele, ko se okno. 429 je edina napaka, ki jo je vredno ponoviti; skoraj vsaka druga zavrnitev zahteva spremembo same zahteve.
Ali so omejitve deljene med vsemi vozlišči API?
Ne, štejejo se na proces API. Okna živijo v pomnilniku in se zapišejo nazaj v tabelo rate_limits vsakih 15 sekund in ob zaustavitvi, nato pa se obnovijo ob zagonu, tako da ponovni zagon nadaljuje okno namesto da bi dodelil nov proračun. Dve vozlišči API zato podvojita vsako učinkovito omejitev. REDIS_URL je rezerviran za skupno različico in ga še nič ne bere, zato bodisi zaženite eno vozlišče API ali zavestno sprejmite omejitve na vozlišče. Ena vrstica v javni tabeli je definirana, vendar je ne uveljavlja nobena pot zahteve, in stran jo označi kot neveljavno, namesto da bi jo predstavila kot kontrolo.