tanghoong cv

Cas 03 · Travaux choisis

Servir le trafic d’un assistant IA sans garder une connexion ouverte

  • Livré et intégré — aucun résultat de production revendiqué

J’ai repensé le chemin de requête d’un assistant de support client IA pour qu’une conversation soit mise en file et interrogée par sondage plutôt que maintenue sur une connexion synchrone — livré et intégré.

Rôle
Senior Web Developer
Compétences
IA appliquée · Architecture · Fiabilité
Domaine
Plateforme e-commerce en production avec assistant IA
Changement
Chemin synchrone → file avec sondage côté navigateur
A request handed to a queue instead of holding a connection openBefore: the browser holds one connection open to the model for tens of seconds, so a slow answer can exceed a gateway timeout and the next customer waits behind it. After: the request is enqueued, a worker calls the model, and the browser polls for the result, so nothing holds a connection open.BEFOREBrowserModelone connection held open · tens of secondsA slow answer can exceed a gateway timeout — and while it runs,the next customer waits behind it.AFTERBrowserQueueWorkerModelbrowser polls every few seconds — nothing is held open
Anonymised. No client name, no industry, no real endpoints.

Contexte

Une plateforme e-commerce en production avec un assistant de support client IA qui sert ses clients, à côté des flux métier déjà établis de la plateforme.

Problème et zones floues

Il y a un décalage structurel au cœur de tout produit à base de LLM : un tour de modèle de langue prend couramment des dizaines de secondes, et tout ce qu’une requête web traverse pour l’atteindre — passerelles, pare-feu, proxys — a un budget de temps pensé pour des requêtes en millisecondes. Une conception synchrone a donc deux modes de défaillance à la fois. Le premier est évident : une réponse lente peut dépasser une limite quelque part sur le chemin. Celui qu’on manque : pendant qu’elle tourne, elle occupe ce chemin, et le client suivant attend derrière. De l’extérieur les deux se ressemblent : l’IA est lente. ⛔ Aucun des deux n’est un problème de modèle.

Mon rôle

Mon rôle : je travaille sur le système de support client IA de l’entreprise — structure des connaissances, routage des réponses, intégration d’outils, gestion des sessions, évaluation, garde-fous et escalade vers une personne — et j’ai conçu puis livré le changement de chemin de requête décrit ici. Je maintiens aussi la plateforme e-commerce autour.

Recueil du besoin

La question utile n’était pas « comment rendre le modèle plus rapide » mais « qu’est-ce qui, sur ce chemin, attend qu’une requête finisse vite, et qu’arrive-t-il à tous les autres quand l’une d’elles ne finit pas ? ». Y répondre fait passer le problème du réglage de modèle à l’architecture de connexion.

Architecture et arbitrages

Sortir du traitement synchrone. La requête est mise en file ; le navigateur interroge toutes les quelques secondes et affiche la réponse quand elle est prête. Rien ne garde de connexion ouverte, donc aucun plafond de temps sur le chemin ne gouverne la conversation, et les clients sont servis en parallèle, ⛔ pas en file les uns derrière les autres. Le coût est un client un peu plus complexe et un état d’attente visible — un échange que je referais, parce que l’autre solution échoue en silence et de façon injuste.

Mise en œuvre et intégration

Des workers de file sur le framework déjà utilisé par la plateforme, avec sondage côté navigateur, et gestion des reprises et des erreurs autour des appels au modèle. Deux contrôles sont venus avec : les sessions inactives expirent — une conversation silencieuse est relancée, et sans réponse elle se ferme et libère la capacité qu’elle retenait — et les requêtes plus légères sont routées vers des paliers de modèle plus petits au lieu que chaque appel parte vers le plus gros, ce qui est le contrôle de coût d’inférence le plus simple qui ne dégrade pas les réponses qui comptent.

Contrôles en production

Reprises et gestion d’erreurs autour des appels au modèle ; gestion du cycle de vie des sessions ; et une approche d’évaluation conçue dans le système plutôt que rajoutée après — y compris la justesse quand une seule réponse doit aller chercher et combiner plusieurs éléments, et le comportement face à des sondages adverses et d’ingénierie sociale. Cette évaluation est en cours de construction, ⛔ ce n’est pas un durcissement livré : je décris une conception, ⛔ je ne revendique pas un résultat.

Impact

La refonte est terminée et intégrée à la plateforme. Aucun chiffre de performance n’est publié pour ce travail, et aucun ne le sera — je n’ai pas de résultat en production que je puisse revendiquer honnêtement.

Enseignement réutilisable

Quand une fonctionnalité IA est décrite comme lente, mesurez le chemin avant de toucher au modèle. D’expérience, le modèle fait généralement ce qu’il a toujours fait, et c’est l’architecture autour qui a changé le vécu de l’utilisateur — et la correction consiste presque toujours à cesser de garder une connexion ouverte.

Preuves publiques

Tout ce qui précède peut être discuté publiquement. Ce qui est retenu, et ce qui est en préparation :

Rien de l’assistant du client n’est publié — ni sa structure de connaissances, ni ses prompts, ni son jeu d’évaluation, ni le moindre chiffre de performance. Les mécanismes décrits plus haut sont génériques et ne sont pas la propriété de ce client ; une implémentation indépendante sur mon propre contenu est un autre système, sans rapport avec l’activité de cet employeur.

Voici la méthode derrière tout ça

Les réponses viennent de ce site. Il vous dira quand un projet ne vaut pas la peine d’être construit.

Parlons-en

Forward Deployed Engineer · Forward Deployed AI Engineer · Applied AI Engineer · Solutions Engineer · Customer Engineer · AI Solutions Architect · Technical Delivery Lead

Basé à Selangor, en Malaisie. Ouvert au travail chez le client dans la vallée de Klang, y compris sur longue durée, et aux projets basés à Singapour et en Asie-Pacifique. Citoyen malaisien, disponible pour m’installer à Singapour — une autorisation de travail parrainée par l’employeur sera nécessaire.