Salta al contenuto
GetAPI
Italiano
Menu

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.
text
POST https://www.getapi.one/v1/responses
Accept: text/event-stream
Authorization: Bearer $GETAPI_ONE_API_KEY

Leggere il ciclo degli eventi

  1. Inviare stream=true tramite SDK o HTTP sul server con tentativi automatici disabilitati nella prima richiesta controllata.
  2. Aggiungere al testo visibile solo payload response.output_text.delta.
  3. Fermarsi a response.completed e conservare metadati finali necessari.
  4. Mostrare response.failed e response.incomplete come esiti non riusciti; non chiamare completo testo parziale.
  5. Errore, eccezione di trasporto, EOF prima della fine o cancellazione locale non sono successo: chiudere il flusso.
python
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

EventoAzione applicativa
response.output_text.deltaAggiungere event.delta senza sostituire il testo precedente.
response.completedSegnare successo e terminare caricamento.
response.failedMostrare errore strutturato e azione sicura di ripetizione.
response.incompleteMantenere 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

text
Browser → your authenticated backend → GetAPI.ONE
                 server-held key only

Passaggi successivi