Streaming de respuestas en tiempo real

Resumen

El streaming transforma la experiencia de tu chatbot: en lugar de esperar cinco segundos frente a una pantalla quieta, ves el texto aparecer palabra por palabra desde el primer instante. Si estás construyendo un chatbot en Python y quieres que se sienta vivo, esta técnica es para ti, y lo mejor es que no requiere rediseñar tu código.

Qué es el streaming y por qué cambia la experiencia del usuario

La diferencia clave no está en la velocidad real de la respuesta, sino en lo que sientes mientras esperas. Cuando el texto fluye en vivo, tu chatbot deja de sentirse lento y empieza a sentirse vivo, igual que en cualquier chat que usas a diario.

Y aquí viene lo interesante: no hablamos de reescribir todo. Son unos pocos cambios sobre lo que ya tienes en tu archivo main.py [00:39].

¿Qué es el streaming en un chatbot? Es la técnica que muestra la respuesta del modelo palabra por palabra a medida que se genera, en lugar de esperar a que termine toda la respuesta para mostrarla de golpe.

Cómo modificar tu código para activar el streaming

El punto de partida es donde tenías tu response guardado en una variable. La recomendación es dejarlo comentado al inicio para comparar con lo nuevo, y eliminar todos los print, desde el de la respuesta hasta el de los tokens [00:45].

El cambio central es reemplazar la variable response por un bloque with usando client.messages.stream [01:11]. La estructura interna se mantiene casi idéntica:

  • El modelo sigue igual.
  • El max_tokens se conserva en 500.
  • El messages mantiene el control del historial de conversación.

Lo nuevo es el uso de as stream y un recorrido sobre stream.text_stream, que imprime cada fragmento de texto conforme lo va recibiendo [01:29].

python with client.messages.stream( model=modelo, max_tokens=500, messages=control_history, ) as stream: for texto in stream.text_stream: print(texto, end="", flush=True)

Una vez que validas que todo lo que estaba dentro de response quedó reemplazado dentro del stream, puedes borrar el código comentado y guardar el archivo [01:47].

Cómo saber si el streaming funciona

Al ejecutar el archivo de la clase cuatro desde la terminal, verás las palabras aparecer una por una o en grupos desde el endpoint, hasta completar la respuesta [02:01]. Esa es la señal de que el stream está funcionando.

¿Cómo recorro un stream en Python? Usas un ciclo for sobre stream.text_stream dentro de un bloque with. Cada iteración entrega un fragmento de texto que imprimes de inmediato.

Por qué juntar memoria, contexto y streaming en un solo proyecto

Hasta ahora habías construido las piezas por separado: memoria por un lado, control de contexto por otro y el streaming recién ahora, cada una funcionando sola en su propio archivo de prueba [02:20].

Ese detalle del streaming, un puñado de líneas distintas, es justo lo que separa un simple script de un producto real. La pregunta natural es qué pasa cuando unes todas esas piezas en algo que de verdad puedas usar.

¿Cuándo debo usar streaming en mi chatbot? Úsalo cuando quieras mejorar la percepción de rapidez y hacer que la conversación se sienta natural, especialmente en respuestas largas donde la espera se nota más.

En la siguiente clase el objetivo es construir el primer proyecto completo, integrando memoria, control de contexto y streaming en una sola aplicación funcional. ¿Ya probaste el streaming en tu propio chatbot? Cuéntanos cómo te fue en los comentarios.