Conversation fluide
Afficher la réponse progressivement et persister l'échange sans bloquer l'interface.
Sur Reezet, nous avons pris en charge le backend IA d'Izzy. Le travail couvre la conversation en streaming, les sorties structurées, la mémoire sélective, l'extraction prudente de signaux et les recommandations de contenus.
Le point le plus sensible était simple : le système devait pouvoir laisser une valeur vide lorsque la conversation ne permettait pas de conclure.
Le contexte
Reezet est une application de bien-être. Côté utilisateur, l'expérience repose sur une conversation avec Izzy, une continuité entre les échanges et des contenus adaptés.
Derrière cette interface, plusieurs contraintes se croisent. La réponse doit arriver vite. Le contexte utile doit être retrouvé sans rejouer tout l'historique. Les informations extraites doivent garder une structure stable. Et une formulation vague ne doit jamais être transformée en certitude psychologique.
Le périmètre de Tensoria porte sur le backend et les briques IA d'Izzy, pas sur la totalité de l'application Reezet.
Limite produit explicite : Izzy ne pose pas de diagnostic médical ou psychologique et ne remplace pas un professionnel de santé. Cette limite intervient dans les instructions et dans la manière d'extraire les signaux.
Le problème d'architecture
Il fallait transformer une conversation libre en données utilisables, sans ralentir l'échange et sans inventer une précision absente du texte.
Afficher la réponse progressivement et persister l'échange sans bloquer l'interface.
Produire des objets typés que le backend peut valider, stocker et exposer par API.
Garder les informations utiles dans le temps sans accumuler chaque détail ponctuel.
Comparer les versions et repérer les régressions sur des scénarios représentatifs.
Structured outputs
Les analyses sont demandées à Gemini sous forme de JSON conforme à des schémas Pydantic. Chaque schéma décrit les champs, les types, les énumérations, les objets imbriqués et les bornes autorisées.
Le backend récupère une réponse parsée plutôt qu'un paragraphe à réparer. Il peut ensuite appliquer ses propres contrôles de cohérence avant de stocker ou d'exposer la donnée.
Un format valide n'est pas encore une valeur juste. Le schéma sécurise la syntaxe et une partie des contraintes ; les scénarios d'évaluation et les règles métier contrôlent la pertinence.
La solution
Conversation
La réponse est diffusée token par token avec SSE. L'historique et le contexte sont chargés en parallèle, puis les messages sont persistés à la fin du flux.
Extraction
Résumé, facettes et autres signaux restent à null quand l'échange ne permet pas de les inférer. Une valeur absente vaut mieux qu'un score plausible mais faux.
Mémoire
La mémoire conserve des préférences, objectifs et éléments de contexte durables. Les émotions et événements ponctuels sont exclus ; les informations contredites peuvent être remplacées.
Profil
Le profil est généré depuis l'onboarding, utilisé par le chat, puis peut être raffiné à partir du retour de l'utilisateur. La personnalisation reste explicite et ne dépend pas d'un réentraînement automatique.
Contenus
Une vidéo ou sa transcription est analysée pour extraire titre, thème, type, description et publics cibles. Les contenus sont ensuite vectorisés et indexés dans Qdrant.
Recommandation
Les thèmes de la conversation deviennent une requête vectorielle. Un seuil de pertinence filtre les résultats et des contenus de repli évitent une liste vide lorsque le signal est insuffisant.
Orchestration
Après la conversation, l'analyse structurée, la mise à jour de la mémoire et la recherche de contenus sont lancées en parallèle. Elles n'allongent pas artificiellement le temps avant le premier mot affiché.
Chaque tâche expose un état explicite : en attente, terminée ou échouée. Les appels modèles sensibles disposent de reprises automatiques. Si une analyse échoue, le système ne transforme pas cet échec en donnée plausible.
01
Streaming de la réponse visible.
02
Analyse, mémoire et recommandations en parallèle.
03
Schémas, cohérence et abstention.
04
API stable et statuts de traitement lisibles.
Évaluation LLM
La boucle d'évaluation a accompagné les itérations sur les prompts et les schémas : jouer des scénarios de conversation, inspecter les sorties structurées, corriger, puis rejouer les mêmes cas.
Les critères ne se résument pas à la qualité rédactionnelle. Il faut vérifier le respect du rôle d'Izzy, l'abstention quand le signal manque, la cohérence entre champs, la mémoire d'une conversation à l'autre et la pertinence des contenus proposés.
Nous ne publions pas de taux de précision. Aucun jeu de référence ni résultat quantitatif consolidé dans le projet ne permet de soutenir honnêtement un chiffre public.
Grille de contrôle
Les arbitrages
Un modèle finit par convertir un indice faible en certitude. Le schéma doit accepter explicitement null, et les consignes doivent expliquer quand l'utiliser.
La mémoire et les recommandations n'ont pas besoin de retarder le premier token. Le flux visible et les traitements de fond doivent être découplés.
Une mémoire qui ne fait qu'ajouter devient longue et contradictoire. Elle doit savoir ignorer le ponctuel, actualiser et oublier.
Pydantic peut valider un entier entre 0 et 10. Il ne peut pas décider seul si cet entier correspond réellement à la conversation.
Le résultat vérifiable
Le résultat présenté ici est vérifiable dans le code. Nous ne publions pas encore de métriques d'usage, d'adoption ou d'impact métier, car elles ne sont pas consolidées.
Questions fréquentes
Votre produit comporte une brique IA ?
Nous pouvons cadrer son architecture, ses sorties structurées, sa mémoire, ses recommandations et son évaluation.

Un projet IA en tête ?
Je suis Anas, fondateur de Tensoria. Je peux vous aider à cadrer votre projet et mieux comprendre l'IA.
Prendre rendez-vous 07 82 80 51 40Ajustez les paramètres selon votre entreprise et découvrez votre potentiel d'économies.
Dites-nous où vous en êtes : on revient vers vous avec des pistes concrètes adaptées à votre métier. Pas de blabla, pas de spam.
On revient vers vous très vite avec des pistes concrètes.