Pyyntörajan virheet (”Too Many Requests”, ”Rate limit reached”) johtuvat organisaatiosi pyyntörajan saavuttamisesta. Pyyntöraja on pyyntöjen ja tokenien enimmäismäärä, joka voidaan lähettää minuutissa. Jos raja saavutetaan, organisaatio ei voi lähettää pyyntöjä onnistuneesti ennen kuin pyyntöraja nollautuu. Virheilmoitus näyttää tältä:
Nopeusraja saavutettu mallille gpt-3.5-turbo organisaatiossa org-exampleorgid123, koskien tokeneita minuutissa.
Raja: 10000.000000 / min. Nykyinen: 10020.000000 / min. Suosittelemme käsittelemään nämä virheet eksponentiaalisen viivytyksen avulla. Eksponentiaalinen viivytys tarkoittaa lyhyttä odotusta, kun pyyntörajan virhe ilmenee, ja epäonnistuneen pyynnön yrittämistä uudelleen sen jälkeen. Jos pyyntö epäonnistuu edelleen, odotusaikaa pidennetään ja prosessi toistetaan. Tätä jatketaan, kunnes pyyntö onnistuu tai uudelleenyritysten enimmäismäärä saavutetaan.
Koska epäonnistuneet pyynnöt lasketaan minuuttikohtaiseen rajaasi, pyynnön jatkuva uudelleenlähetys ei toimi. Pyyntörajoja voidaan soveltaa lyhyemmillä jaksoilla – esimerkiksi 60 RPM:n rajalla 1 pyyntö sekunnissa – joten myös lyhyet, suuren volyymin pyyntöpiikit voivat johtaa pyyntörajan virheisiin. Eksponentiaalinen viivytys toimii hyvin, koska se ajoittaa pyynnöt erilleen ja vähentää näiden virheiden esiintymistiheyttä.
Pythonissa eksponentiaalisen viivytyksen ratkaisu voisi näyttää tältä:
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(Huomaa: backoff-kirjasto on kolmannen osapuolen työkalu. Kehotamme kaikkia asiakkaitamme tekemään asianmukaisen huolellisuusarvioinnin validoidessaan ulkoista koodia projekteihinsa.)
Jos eksponentiaalisen viivytyksen käyttöönotto johtaa silti tähän virheeseen, sinun on ehkä nostettava käyttötasoasi. Voit tarkastella nykyisiä pyyntörajojasi ja ohjeita luottamustasosi nostamiseen pyyntörajojen korottamiseksi tilisi asetusten rajoitusosiossa.
