GetAPI.ONE
Receber Responses por streaming de GetAPI.ONE
Consuma eventos enviados pelo servidor, acrescente apenas deltas de texto e trate completed, failed e incomplete como resultados terminais distintos.
Escolher um caminho compatível
- Use modelo atual com endpoint declarado Responses.
- Mantenha a chave API em servidor ou processo local confiável.
- Decida como exibir texto parcial e recuperar um fluxo interrompido.
POST https://www.getapi.one/v1/responses
Accept: text/event-stream
Authorization: Bearer $GETAPI_ONE_API_KEYLer o ciclo de eventos
- Envie stream=true por SDK ou cliente HTTP do servidor, desativando repetições automáticas na primeira solicitação controlada.
- Acrescente ao texto visível somente conteúdos de response.output_text.delta.
- Pare em response.completed e preserve os metadados finais necessários.
- Apresente response.failed e response.incomplete como resultados sem sucesso; não marque texto parcial como completo.
- Trate evento de erro, exceção de transporte, EOF antes da conclusão ou cancelamento local como falha e feche o fluxo.
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")Mapear eventos ao estado da interface
| Evento | Ação da aplicação |
|---|---|
| response.output_text.delta | Acrescentar event.delta; não substituir o texto já exibido. |
| response.completed | Marcar sucesso e encerrar o carregamento. |
| response.failed | Mostrar erro estruturado e ação segura de repetição. |
| response.incomplete | Manter saída parcial visivelmente incompleta e examinar detalhes de incompletude. |
Verificar o resultado esperado
- O texto aparece incrementalmente sem deltas duplicados.
- O carregamento termina apenas após evento terminal ou erro de transporte.
- Conexão interrompida nunca exibe falso sucesso.
Tratar erros de transporte e protocolo
- Se não chegarem eventos, verifique /v1/responses exato, stream=true, buffer do proxy e declaração de endpoint do modelo.
- Se a saída se repetir, acrescente cada delta uma vez e não combine a saída acumulada do SDK com eventos brutos.
- Repita somente antes de efeitos visíveis ou com idempotência de aplicação; desconectar não prova que o provedor não processou nada.
Manter streaming no servidor
Browser → your authenticated backend → GetAPI.ONE
server-held key only