Le streaming de réponses est devenu le pattern UX par défaut pour les applications IA, suivant l'exemple de ChatGPT qui affiche les réponses partielles au fur et à mesure qu'elles sont générées plutôt que d'attendre les sorties complètes. La technique se divise en deux implémentations principales : les Server-Sent Events pour le streaming simple unidirectionnel, et les WebSockets pour la communication bidirectionnelle nécessaire dans les workflows complexes comme les systèmes multi-agents ou les assistants de code. Bien que le streaming améliore la réactivité perçue, il ne rend pas réellement l'inférence du modèle plus rapide.
L'obsession du streaming révèle une incompréhension fondamentale de la performance des apps IA. Les développeurs se concentrent sur le dernier kilomètre — à quelle vitesse les utilisateurs voient apparaître le texte — tout en ignorant les vrais goulots d'étranglement. La sélection de modèle, l'optimisation des prompts et la mise en cache intelligente offrent de vraies améliorations de latence. Le streaming ne fait que masquer les réponses lentes avec une meilleure UX, ce qui compte mais ne devrait pas être votre première optimisation. On a vu trop d'équipes implémenter des configurations de streaming élaborées alors que leurs apps prennent encore 8 secondes pour générer une réponse simple.
Ce qui manque dans la plupart des discussions sur le streaming, c'est la complexité d'infrastructure qu'il ajoute. SSE nécessite de maintenir des connexions persistantes, gérer les interruptions réseau et administrer l'état à travers les réponses partielles. Les WebSockets sont encore plus complexes, nécessitant la gestion de messages bidirectionnels et la gestion du cycle de vie des connexions. Pour la plupart des applications IA, cette complexité ajoutée n'est pas justifiée — surtout quand une mise en cache appropriée des prompts et le routage de modèles offriraient de meilleurs gains de performance avec moins de charge technique.
Pour les développeurs qui construisent des apps IA : implémentez le streaming après avoir optimisé la performance réelle de votre modèle, pas avant. Commencez par la mise en cache des réponses, expérimentez avec des modèles plus rapides pour les tâches simples, et optimisez vos prompts. Le streaming devrait être votre finition, pas votre stratégie de performance. Les utilisateurs remarquent plus la différence entre une réponse de 2 secondes et 8 secondes qu'ils ne remarquent les effets du streaming sur des réponses déjà rapides.
