GetAPI.ONE
Ricevere Responses in streaming da GetAPI.ONE
Consumare eventi dal server, aggiungere solo delta testuali e distinguere completed, failed e incomplete come esiti terminali.
Scegliere un percorso compatibile
- Usare un modello attuale con endpoint Responses dichiarato.
- Tenere la chiave in server o processo locale affidabile.
- Decidere come mostrare testo parziale e recuperare flussi interrotti.
POST https://www.getapi.one/v1/responses
Accept: text/event-stream
Authorization: Bearer $GETAPI_ONE_API_KEYLeggere il ciclo degli eventi
- Inviare stream=true tramite SDK o HTTP sul server con tentativi automatici disabilitati nella prima richiesta controllata.
- Aggiungere al testo visibile solo payload response.output_text.delta.
- Fermarsi a response.completed e conservare metadati finali necessari.
- Mostrare response.failed e response.incomplete come esiti non riusciti; non chiamare completo testo parziale.
- Errore, eccezione di trasporto, EOF prima della fine o cancellazione locale non sono successo: chiudere il flusso.
import os
from openai import OpenAI
terminal_event = None
try:
with OpenAI(
api_key=os.environ["GETAPI_ONE_API_KEY"],
base_url="https://www.getapi.one/v1",
timeout=30.0,
max_retries=0,
) as client:
with client.responses.create(
model="<RESPONSES_MODEL_ID_FROM_CURRENT_CATALOG>",
input="Give three concise deployment checks.",
stream=True,
) as stream:
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
elif event.type == "response.completed":
terminal_event = event.type
print("\ncompleted")
break
elif event.type in {"response.failed", "response.incomplete", "error"}:
terminal_event = event.type
raise RuntimeError(f"stream ended with {event.type}: {event}")
except KeyboardInterrupt:
raise SystemExit("cancelled locally; the stream and client were closed")
if terminal_event != "response.completed":
raise RuntimeError("stream ended before response.completed")Associare eventi allo stato UI
| Evento | Azione applicativa |
|---|---|
| response.output_text.delta | Aggiungere event.delta senza sostituire il testo precedente. |
| response.completed | Segnare successo e terminare caricamento. |
| response.failed | Mostrare errore strutturato e azione sicura di ripetizione. |
| response.incomplete | Mantenere output parziale visibilmente incompleto e controllarne i dettagli. |
Verificare il risultato previsto
- Il testo appare progressivamente senza delta duplicati.
- Caricamento termina solo con evento terminale o errore di trasporto.
- Una connessione interrotta non mostra falso successo.
Gestire errori di trasporto e protocollo
- Se non arrivano eventi, verificare /v1/responses esatto, stream=true, buffering proxy e dichiarazione modello.
- Se l'output si ripete, aggiungere ogni delta una volta senza combinare accumulo SDK ed eventi grezzi.
- Ripetere solo prima di effetti visibili o con idempotenza applicativa; una disconnessione non prova mancata elaborazione.
Mantenere streaming sul server
Browser → your authenticated backend → GetAPI.ONE
server-held key only