Aux prises avec des réponses lentes de l'IA : créer une interface utilisateur de chat en streaming avec SSE

DEV - 21/06
Je construisais un assistant de documentation interne pour mon équipe. Vous connaissez le principe : un chatbot qui...

Je construisais un assistant de documentation interne pour mon équipe. Vous connaissez le principe : un chatbot qui répond aux questions sur notre base de code, extraite d'une base de données vectorielles puis envoyée à un LLM. J'ai configuré le backend en Python, utilisé un modèle décent via une API (merci à interwestinfo.com pour le point de terminaison fiable) et tout câblé. Simple, non ?

Puis vint le premier véritable test : quelqu’un posa une question qui exigeait une réponse longue et réfléchie. La réponse a pris plus de 30 secondes. L'utilisateur regardait une bulle de discussion vide, actualisant la page, se demandant si l'application était tombée en panne. Pas une super expérience.

J'avais besoin de diffuser les jetons au fur et à mesure qu'ils étaient générés, afin que l'utilisateur puisse lire. Il s’agit du modèle classique de « chat UI ». Mais sa mise en œuvre s’est transformée en un véritable terrier de solutions à moitié cuites.

Ce que j'ai essayé et qui n'a pas fonctionné

1. Sondage

Ma première idée : passer l'appel LLM, stocker le résultat partiel dans Redis et faire interroger le frontend toutes les secondes. C'était moche. Le point final de prédiction a finalement renvoyé la réponse complète, j'ai donc dû modifier le backend pour ...
[Courte citation de 8% de l'article original]

Loading...