Guía de integración GloopAPI
Respuestas en streaming
Consume eventos de streaming y señales finales.
El streaming entrega la salida por partes sin cambiar permisos ni facturación. Establece stream: true y procesa text/event-stream. No interpretes toda la respuesta como un único documento JSON.
Responses utiliza eventos tipados como response.output_text.delta y response.completed; analiza cada evento según su tipo.
Analizar según el protocolo
En Chat Completions, data de SSE contiene fragmentos JSON. El texto suele estar en choices[].delta y las llamadas a herramientas también pueden fragmentarse. data: [DONE] marca el final. Al solicitar stream_options.include_usage, puede llegar un fragmento final de uso con choices vacío; la ausencia de uso no significa gratuidad.
Límites de red
Un fragmento de bytes de red no equivale a un evento: almacena hasta el separador de línea en blanco, combina las líneas data y analiza el JSON. Gestiona caracteres UTF-8 partidos, líneas vacías, comentarios y errores del servicio. Los ejemplos a la derecha del endpoint muestran las estructuras de eventos del protocolo.
Si se corta la conexión o falta el evento final, marca la salida como incompleta y conserva el texto mostrado y los diagnósticos. Cerrar la conexión no garantiza que el servicio no ejecutara ni que haya reembolso. Las solicitudes síncronas de texto no confirmadas no tienen el contrato de recuperación de tareas persistentes y no deben reenviarse automáticamente.
Uso y procesamiento posterior
Confirma el resultado completo solo después de un final normal. La facturación final usa los registros de uso de la plataforma y no puede deducirse del número local de fragmentos. Si el stream informa un error después de HTTP 200, trátalo como error de protocolo, sin basarte solo en el estado inicial. Consulta Gestión de errores y Facturación.