2024 – 2025 · AI Engineer · Groupe Caisse des Dépôts
Archi+ — Chatbot IA multimodal
Un assistant conversationnel interne, à l'aise avec le texte, le code et les images, branché sur la documentation du Groupe et utilisé par plus de 10 000 personnes. Parti d'une page blanche, avec une première version entre les mains des utilisateurs en un mois.
De quoi il s'agit
Un chatbot interne au Groupe Caisse des Dépôts, qui répond en s'appuyant sur les contenus de l'entreprise, connectés directement à SharePoint (espaces RH, Sécurité, etc.). J'ai contribué au backend au sein de l'équipe, en le faisant évoluer par petites itérations au rythme des retours des équipes métier.
Rester rapide sans bloquer
Sur ce genre d'application, le temps part surtout dans l'attente des réponses des modèles. Le backend est donc asynchrone (asyncio) : il traite plusieurs demandes de front, et les traitements CPU-intensifs (tels que la lecture des fichiers, l'extraction de texte, etc.) partent sur des threads et processus à part pour ne pas figer le reste.
Côté écran, la réponse s'écrit au fil de l'eau grâce au SSE (Server-Sent Events) : plus léger que des WebSockets pour un flux à sens unique, avec reprise automatique en cas de coupure. L'utilisateur voit le texte se construire au lieu de patienter devant un écran vide.
Retrouver la bonne information
Lecture des documents
Une chaîne qui avale plusieurs formats (PDF, DOCX, TXT), les nettoie, les découpe, calcule leurs vecteurs et les range dans un index Azure AI Search.
Découpage par le sens
Plutôt que de couper tous les N caractères, le texte est segmenté en suivant sa structure et son propos — le contexte est préservé et les recherches tombent bien plus juste.
Plusieurs angles à la fois
Une même question est reformulée de différentes manières, cherchée en parallèle, puis les résultats sont rassemblés et reclassés. Ça reste pertinent même quand la question est mal tournée.
Recherche menée par des agents
Des agents ajustent eux-mêmes leur façon de chercher au fil des essais, pour venir à bout de documents internes touffus.
Plusieurs modèles, au choix de l'utilisateur
L'interface met plusieurs modèles à disposition et c'est l'utilisateur qui choisit celui qu'il veut selon son besoin : Mistral pour discuter, Codestral pour le code, DALL·E ou Flux pour les images. Pour les usages plus avancés, des agents qui « réfléchissent puis agissent » peuvent en plus mobiliser des outils, comme la recherche web ou la génération d'images.
La génération de documents
La génération se fait en deux temps. D'abord une phase de cadrage : l'utilisateur échange avec l'assistant pour préciser le contenu voulu et le sommaire du document. Pendant cette discussion, un agent connecté à internet peut aller chercher des informations complémentaires si besoin.
Vient ensuite la génération elle-même, pilotée par un système d'agents ReAct : le modèle a accès à internet et à la génération d'images. Dans une présentation PowerPoint, par exemple, il produit des illustrations directement à partir du modèle choisi (DALL·E, Flux).
Toute cette partie — conversation comme génération — se déroule en streaming (SSE). Comme la construction du document peut prendre un peu de temps, l'utilisateur voit défiler les différentes étapes en temps réel et sait toujours où en est la génération, au lieu de patienter devant un écran vide.
Ce que j'y ai apporté
- Le projet monté depuis zéro, avec une première version livrée en un mois dans un contexte très politique.
- La gestion multimodale : plusieurs modèles (Mistral small, medium, large, Codestral, DALL·E, Flux…) mis à disposition via un registre facile à étendre.
- Un espace documentaire où chacun dépose ses propres fichiers et interroge directement leur contenu.
- La génération de documents (PPTX, WORD) à la charte de l'entreprise : un agent connecté au web rédige le plan, puis le contenu, puis sort le fichier final.
- La traduction de documents dans plusieurs langues en gardant à l'identique la mise en page, le gabarit et les polices d'origine (PPTX, WORD ; PDF en chantier à mon départ).
- Des retours d'expérience partagés régulièrement avec les autres équipes du SI.