Saltar al contenido principal
Logo de JSCamp

Ajustando el streaming para servirlo al frontend

Aprende cómo adaptar el streaming de respuestas desde el backend para poder consumirlo correctamente desde el frontend y mejorar la experiencia en aplicaciones con IA.

midudev

Más clases y directos en YouTube

Suscribirse

📡 Ajustando el streaming para servirlo al frontend

En esta clase vamos a resolver uno de los problemas más importantes cuando trabajamos con IA en aplicaciones reales:

👉 Cómo enviar respuestas en streaming desde el backend y consumirlas correctamente en el frontend

Porque generar texto no es suficiente.
Lo importante es cómo lo entregas al usuario.


🚀 ¿Por qué usar streaming?

Cuando trabajas con modelos de IA, las respuestas pueden tardar varios segundos.

Si esperas a tener toda la respuesta:

  • ❌ Mala experiencia de usuario
  • ❌ Sensación de lentitud
  • ❌ Interfaz bloqueada

Con streaming:

  • ✅ Empiezas a ver texto inmediatamente
  • ✅ Sensación de rapidez
  • ✅ Experiencia tipo ChatGPT

🔄 El problema del streaming “tal cual”

El backend puede enviar datos en streaming…
pero el frontend no siempre puede consumirlos fácilmente.

Problemas típicos:

  • Los chunks llegan en formatos difíciles de procesar
  • No están bien delimitados
  • No siguen un estándar claro
  • El frontend no sabe cuándo empieza o termina un mensaje

👉 Resultado: caos.


🧠 La clave: transformar el stream

La solución no es solo hacer streaming.

Es adaptarlo para que el frontend lo entienda perfectamente.

Esto implica:

  • Formatear los datos correctamente
  • Enviar información progresiva
  • Mantener consistencia en los chunks

🛠️ Estrategia para servir streaming

1. Leer el stream del modelo

Desde el backend recibimos datos en streaming, por ejemplo:

  • Tokens
  • Fragmentos de texto
  • Eventos

2. Transformar los chunks

En lugar de reenviar el stream tal cual:

👉 Lo procesamos y lo convertimos en algo más usable

Por ejemplo:

  • Solo texto limpio
  • Sin metadatos innecesarios
  • Con formato consistente

3. Enviar al frontend en tiempo real

Usamos streaming HTTP (como ReadableStream) para:

  • Enviar cada fragmento en cuanto llega
  • Evitar esperar a la respuesta completa

4. Cerrar correctamente el stream

Muy importante:

  • Indicar cuándo termina
  • Evitar que el frontend se quede esperando

📦 Ejemplo conceptual

Backend:

return new Response(stream, {  headers: {    'Content-Type': 'text/plain'  }})

Frontend:

const reader = response.body.getReader()while (true) {  const { done, value } = await reader.read()  if (done) break  const chunk = new TextDecoder().decode(value)}

⚡ Buenas prácticas

  • Envía solo lo necesario
  • Evita estructuras complejas en el stream
  • Mantén consistencia en los datos
  • Asegúrate de cerrar el stream correctamente
  • Piensa siempre en el consumo desde frontend

🎯 Resultado final

Cuando lo haces bien:

  • El texto aparece progresivamente
  • La app se siente rápida
  • El usuario tiene feedback inmediato
  • La experiencia mejora muchísimo

🔥 Idea clave

El streaming no es solo backend. Es una decisión de producto que impacta directamente en la experiencia de usuario.


🔜 Qué veremos en la siguiente clase

En la siguiente clase iremos un paso más allá:

  • Integrar este streaming directamente en el frontend
  • Manejar estados de carga
  • Renderizar texto progresivamente
  • Mejorar la UX tipo chat
  • Preparar la base para apps reales con IA

💡 Consejo: Si tu app de IA no usa streaming, estás perdiendo gran parte de la magia. Empieza a implementarlo cuanto antes.