Pogreške ograničenja broja zahtjeva ('Too Many Requests', „Rate limit reached”) nastaju kada dosegnete ograničenje broja zahtjeva svoje organizacije, odnosno najveći broj zahtjeva i tokena koji se mogu poslati u minuti. Ako se ograničenje dosegne, organizacija ne može uspješno slati zahtjeve dok se ograničenje broja zahtjeva ne poništi. Poruka o pogrešci izgleda ovako:
Dosegnuto ograničenje brzine za gpt-3.5-turbo u organizaciji org-exampleorgid123 za tokene po minuti.
Ograničenje: 10000.000000 / min. Trenutačno: 10020.000000 / min. Preporučujemo da te pogreške rješavate eksponencijalnim odgađanjem. Eksponencijalno odgađanje znači kratko čekanje kada se pojavi pogreška ograničenja broja zahtjeva, a zatim ponovni pokušaj neuspjelog zahtjeva. Ako je zahtjev i dalje neuspješan, trajanje čekanja se povećava i postupak se ponavlja. To se nastavlja dok zahtjev ne bude uspješan ili dok se ne dosegne najveći broj ponovnih pokušaja.
Budući da neuspješni zahtjevi ulaze u vaše ograničenje po minuti, kontinuirano ponovno slanje zahtjeva neće funkcionirati. Ograničenja broja zahtjeva mogu se primjenjivati tijekom kraćih razdoblja – na primjer, 1 zahtjev u sekundi za ograničenje od 60 RPM – što znači da kratki naleti velikog broja zahtjeva također mogu dovesti do pogrešaka ograničenja broja zahtjeva. Eksponencijalno odgađanje dobro funkcionira jer razdvaja zahtjeve kako bi se smanjila učestalost tih pogrešaka.
U Pythonu bi rješenje s eksponencijalnim odgađanjem moglo izgledati ovako:
from openai import OpenAI, RateLimitError
import backoff
client = OpenAI()
@backoff.on_exception(backoff.expo, RateLimitError)
def completions_with_backoff(**kwargs):
response = client.completions.create(**kwargs)
return response(Napomena: biblioteka backoff alat je treće strane. Potičemo sve svoje korisnike da provedu vlastitu dubinsku provjeru pri provjeri bilo kojeg vanjskog koda za svoje projekte.)
Ako implementacija eksponencijalnog odgađanja i dalje dovodi do ove pogreške, možda ćete morati povećati svoju razinu upotrebe. Svoja trenutačna ograničenja broja zahtjeva i način povećanja razine povjerenja radi povećanja ograničenja broja zahtjeva možete vidjeti u odjeljku s ograničenjima u postavkama računa.
