Inconcistency between Responses API and Chat Completions API on rate limit errors
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- api, backend-api-design
Direzione di ricerca
Inizia dal punto di ingresso responses.create(..., stream=True) e confronta la gestione degli errori di rate limit con il percorso di streaming di Chat Completions, in particolare la logica di retry del client prima dell’iterazione. Riproduci il problema con un modello ospitato su Azure e un input lungo, quindi determina e testa un comportamento coerente per gli errori generati durante la creazione dello stream e durante la sua lettura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Confirm this is an issue with the Python library and not an underlying OpenAI API
- This is an issue with the Python library
Describe the bug
I noticed that rate limit errors are raised differently in the two APIs during streaming. In chat completions the error is raised and retried by the client itself on the initial call, before reading the stream. On the other hand, the first call to responses.create(...) returns a stream object successfully and then upon reading the stream, an APIError is raised indicating a rate limit. As a result, the whole retrying logic in the client is completely skipped and the user has to implement their own. It is also unclear whether an error could be raised mid-stream which adds to the complexity of the fix.
After inspecting the client's code, I initially thought that this is not a library issue but a misalignment with the model's service. I contacted Microsoft support since they host our models but they insisted I raise an issue here.
To Reproduce
To reproduce this you would need an Azure hosted OpenAI model ( I have personally already tried this with gpt-4o and gpt-5 ). Lower your token rate limit threshold to a low enough value and use the below snippet.
Code snippets
from openai import OpenAI
client = OpenAI(
base_url = "your-endpoint-v1",
api_key="your-api-key"
)
response = client.responses.create(
model="your-model",
store=False,
stream=True,
input='a long enough prompt'*10000 # to hit a rate limit
)
for event in response:
continue # an APIError is raised here
OS
Linux, Windows
Python version
Python >=3.11.9
Library version
openai v1.109.1
- Lingua principale
- Python
- Stelle
- 31.8k
- Fork
- 8k
- Merge medio
- 14h 16m
- PR unite (30g)
- 151
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openai/openai-python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
openai/openai-python#4022 · 23 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
fix(auth): SubjectTokenProviderError drops response and duplicates error message in workload identity providersForse già presa @mohmedmm l’ha presa 17 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
openai/openai-python#4017 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Querystring drops explicit empty-string scalar valuesForse già presa @sylvesterkaczmarek l’ha presa 39 giorni fa. Apertasdk-breaking-change v4
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
openai/openai-python#3837 ·
I maintainer di solito rispondono entro 1 giorno
-
Define + export `ServiceTiers` string literalForse già presa @SparshGarg999 l’ha presa 66 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openai/openai-python#3556 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Empty OPENAI_BASE_URL prevents fallback to default API endpointForse già presa @Sehastrajit-S l’ha presa 32 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openai/openai-python#2927 · 7 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di openai/openai-python
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 66/100
AlexsLemonade/scpca-docs#518 ·
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
rocketride-org/rocketride-server#2705 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Metabuilder-Labs/tokenjam#786 ·
I maintainer di solito rispondono entro 1 giorno
-
prototype(verifier_token): map disallowed warning to contraindicated before composite precedence checkForse già presa @drk-ram l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
agentrust-io/trace-spec#582 ·
I maintainer di solito rispondono entro 1 giorno
-
area:cli priority:low refactor size:small
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
RonaldHensbergen/composable-data-stack#906 ·
I maintainer di solito rispondono entro 1 giorno