Skip to content

Personal blog

Sous le capot du .docx : comment j'automatise le remplissage de fiches métier avec une IA

On me demande souvent de générer des documents qui doivent s'insérer dans des processus administratifs existants. Oubliez la rédaction de longs textes libres : ici, l'enjeu est de remplir une fiche de synthèse, avec des cases précises, des tableaux et même des cases à cocher.

Pour relever ce défi, j'ai dû arrêter de voir Word comme un éditeur de texte et commencer à le voir pour ce qu'il est réellement : une archive ZIP remplie de fichiers XML. Cette perspective change tout pour l'automatisation.

Conformité et qualité : guider un agent vers des standards métier exigeants

Générer du texte avec une IA est devenu facile. Mais générer un document qui respecte scrupuleusement les standards de qualité, de ton et de fond d'une organisation est un défi bien plus complexe. Comment passer d'un simple "brouillon" à un document prêt à être approuvé ?

La réponse réside, selon mon expérience, dans la mise en place d'une boucle de rétroaction entre l'agent et une base de connaissances experte. C'est ce que j'aime appeler la Conformité Agentique.

Au-delà de la recherche : le RAG agentique et le pattern "navigator"

Dans mon article précédent, j'ai expliqué pourquoi la Recherche Hybride est une première étape importante. Mais pour des domaines de précision comme la banque ou le droit, la recherche statistique par similitude ne suffit pas. L'agent doit savoir exactement où il se trouve.

C'est là qu'intervient le RAG Agentique, et plus précisément le pattern Navigator. Ici, oubliez les Vector DB et les Embeddings : nous passons sur une navigation déterministe basée sur la structure et les outils.

Le RAG ne se limite pas aux embeddings : l'importance de la recherche hybride

Le RAG (Retrieval Augmented Generation) est devenu le standard pour connecter des LLMs à des bases de connaissances privées. Dans la plupart des tutoriels, on vous explique qu'il suffit de découper vos documents en morceaux (chunks), de les transformer en vecteurs (embeddings) et de faire une recherche de similitude.

Cependant, dans des secteurs exigeants comme la banque ou le droit, j'ai constaté que cette approche "tout-vecteur" est souvent insuffisante. Aujourd'hui, je partage avec vous pourquoi la combinaison de la recherche vectorielle et de la recherche plein texte (Full-Text Search) est le véritable pilier d'un RAG de production fiable.

Du PDF au Markdown : choisir le bon pipeline d'ingestion pour son RAG

On dit souvent que la qualité d'un système RAG dépend de son modèle d'embedding ou de son LLM. Mais mon expérience m'a montré qu'en réalité, la bataille se gagne bien plus tôt : au moment du parsing des documents. Un agent IA ne peut pas naviguer intelligemment dans un document s'il reçoit un bloc de texte brut sans structure.

Aujourd'hui, je partage avec vous mon approche pour transformer des PDF complexes en Markdown structuré, et surtout comment choisir entre les deux outils phares du moment.

Concevoir un système agentique : de la théorie à la réalité terrain

On a souvent tendance à se concentrer sur la création d’APIs, de modèles ou encore de packages Python bien structurés. Dans des équipes très spécialisées — avec des backend engineers, des data engineers et des équipes plateforme — l’intégration de bout en bout est généralement fluide.

Mais mon expérience dans des organisations moins technologiques, ou au sein de petites équipes, m'a appris une réalité différente : le défi ne réside pas seulement dans le modèle lui-même, mais dans la manière dont ces composants s’intègrent réellement avec les systèmes existants. Voici comment j'ai conçu mon architecture pour qu'elle soit non seulement performante, mais surtout intégrable.

Automatiser la génération de documents complexes : mon approche agentique

La génération de documents professionnels, tels que les rapports techniques ou les notes de cadrage, est une tâche qui demande souvent des heures de recherche, de synthèse et de mise en forme. Si les LLMs classiques excellent dans la rédaction de courts textes, j'ai souvent remarqué qu'ils peinent à produire des documents longs et structurés tout en respectant un template strict.

Pour relever ce défi, j'ai exploré une approche agentique basée sur le pattern ReAct (Reasoning + Acting). Dans cet article, je partage avec vous ma façon de transformer un processus de rédaction manuel en un système capable de rechercher des données, de rédiger des sections et de compiler un document final. C'est une méthode parmi d'autres, mais elle s'est révélée particulièrement efficace.

Agentic IA (2/3): From Router to React Agent

Dans le premier article de cette série, nous avons construit un Router Agent avec une logique if/else rigide. Aujourd'hui, nous passons au React Agent : un agent autonome qui décide lui-même de ses actions.

Contrairement aux Router Agents qui suivent un chemin fixe, les React Agents s'adaptent dynamiquement à chaque situation. Cette flexibilité résout un problème majeur : les orchestrateurs complexes deviennent rapidement ingérables car ils nécessitent de maintenir des prompts avec exemples de plus en plus lourds.

Agentic IA (1/3): Exemple d'un agent de type Router

Dans cet article, je partage avec vous comment construire des agents IA sans recourir à des frameworks complexes comme LangChain ou SmolAgent. Si vous êtes nouveau sur ce blog, je vous invite à lire d'abord cet article :

Qu'est-ce qu'un agent ? Pour comprendre les concepts de base, je vous invite à lire d'abord l'article précédent sur les agents

Cette première partie de la série "How to build an Agent" se concentre sur la création d'un Router Agent - un agent capable de router intelligemment les requêtes utilisateur vers différentes actions selon leur nature.

Agentic IA ne veut pas forcément dire Agent ReAct

Introduction

Dans le monde de l'intelligence artificielle générative, le terme "agent" est de plus en plus utilisé, notamment avec l'émergence des architectures basées sur le protocole MCP. Pourtant, une question se pose : s'agit-il d'une réelle innovation ou simplement d'un rebranding de concepts déjà existants ?

Lors d'une discussion avec un collègue, on s’est vite rendu compte qu’on n’avait pas la même définition d’un agent. D’un côté, on pensait que les agents ne sont rien de plus qu’une nouvelle manière d’organiser des abstractions classiques. De l’autre, on défendait l’idée que les agents représentent une avancée réelle, un changement de paradigme dans la façon de concevoir des systèmes intelligents.

AWS pour Data Scientists et pas que !

Bon on en fin du mois, parlons de Cloud computing avec un focus sur AWS, le géant du secteur. Tu es data scientist, tu veux te lancer dans le machine learning, mais tu ne sais pas par où commencer ? Tu as entendu parler d’AWS, mais tu trouves ça trop complexe ? Pas de panique, cet article est fait pour toi ! Si tu débarques dans l’univers AWS, tu as sûrement ressenti cette sensation : tu ouvres la console AWS pour la première fois, et c’est comme si tu étais dans le cockpit d’un vaisseau spatial… avec 200 boutons et aucun manuel d’utilisation ! Pas de panique, on va y aller du bas vers le haut : d’abord les fondations, puis la magie ML. Prêt·e ? C’est parti !

Trop de SDK pour les LLMs ? Passe à une LLMFactory ou Adapters avec LiteLLM

Dans l’univers des LLMs, chaque provider a son propre dialecte. Tu veux utiliser OpenAI** ? Tu installes openai. Tu veux Claude (Anthropic) ? C’est anthropic. Et pour tester Groq, Mistral, Fireworks, ou même AWS Bedrock ? Chacun vient avec son propre SDK, ses headers custom, sa manière de formuler les prompts, et son format de sortie.

C’est vite le chaos. 😤

Traitement des audios pour la création de datasets audio

Ça fait un moment que je n’ai pas publié, et c’est surtout parce que j’ai été absorbé par mon projet open source de création de datasets en Moore et l’entraînement de modèles locaux. Beaucoup de choses ont été réalisées en coulisses, et j’ai décidé de publier un article par mois pour vous tenir au courant. Pour plus de détails, n’hésitez pas à faire un tour sur mon GitHub ici ou à consulter mon profil Hugging Face ici.

Aujourd’hui, je vais vous raconter comment j’ai abordé le traitement de fichiers audio, depuis leur chargement jusqu’à leur agrégation dans un dataset, en passant par la segmentation des audios. On va voir ensemble comment un simple fichier audio se transforme en un tas d’array, prêt à être exploité pour du machine learning. C’est parti !

Comment sont construits les assistants conversationnels ? ChatGPT, Claude, Mistral

Aujourd'hui, on plonge dans les coulisses des grands modèles de langage (LLM). Vous êtes-vous déjà demandé comment ces modèles arrivent à répondre avec autant de fluidité ? Quand on parle de ChatGPT, techniquement c'est le résultat d'un modèle OpenAI après avoir fait une série d'entraînements. La réponse tient en trois étapes-clés :
1. Le pré-entraînement sur des montagnes de données,
2. Le fine-tuning pour spécialiser le modèle, et
3. L’apprentissage par renforcement avec feedback humain (RLHF).

Dans cet article, je retrace les principales étapes avec vous. Un petit billet de blog pour clore l'année 2024. On ne fera pas de MLOPS aujourd'hui, promis :)

Comprendre les Transformers dans l’IA Générative

Quand on parle d’IA aujourd’hui, les Transformers reviennent souvent dans la conversation. Pourquoi ? Parce qu’ils ont révolutionné la façon dont on traite le texte. Avec leur mécanisme d’attention, ils sont capables d’aller vite, de traiter les mots dans leur contexte et surtout de produire des résultats impressionnants dans des domaines comme la traduction, la génération de texte, et bien plus encore.

Dans cet article, on va décortiquer les architectures principales des Transformers : l’Encodeur-Décodeur, l’Autoregressif et quelques variantes importantes. Alors, installe-toi bien, on plonge dans le vif du sujet. 😉

Adieu OCR, Place aux LLM Multimodaux pour l'Extraction des Informations dans les Documents

Les formats comme PDF, Word ou PowerPoint sont omniprésents pour le partage de documents, mais dès qu’il s’agit d’extraire des données structurées ou de gérer des contenus complexes, c’est une toute autre histoire.

Ceux qui se sont déjà aventurés dans ces tâches connaissent la frustration des outils traditionnels comme PDFium, pypdf ou textract. Bien que pratiques pour des besoins basiques, ces solutions montrent vite leurs limites face aux documents denses, aux tableaux imbriqués, ou au texte qui se chevauche.

Mais les temps changent. Avec l’arrivée des LLM multimodaux, les choses s'améliorent drastiquement. Ces modèles permettent non seulement de traiter des fichiers comme des PDF, PPTX ou Word, qu’ils soient purement textuels ou visuels, mais offrent également la possibilité de personnaliser l’extraction. Par exemple, vous pouvez demander un formatage précis des données extraites.

Dans cet article, je vous propose de découvrir comment les LLM multimodaux révolutionnent cette tâche autrefois laborieuse, en rendant les processus non seulement plus simples mais aussi plus abordables. Allons-y !

Construire et publier son propre package Open Source Python

Quand on débute avec Python pour l’analyse de données, on commence souvent par installer des packages comme NumPy ou Pandas après avoir configuré Python. Au fil du temps, lorsqu’on gère plusieurs projets, on se retrouve avec une "boîte à outils" composée de fonctions récurrentes que l’on transporte de projet en projet.

Mais, au lieu de copier et coller du code, pourquoi ne pas structurer ce travail dans un package Python ? Cela facilite le partage et l’utilisation, que ce soit par vos collègues ou la communauté.

Je me souviens qu’à l’époque où j’étais en école d’ingénieur, chaque fois que j’installais un package avec pip install, je me demandais comment il était possible de créer ces outils accessibles à tous. Voir les informations d’un package avec une commande comme pip show me fascinait (image en bas). alt text C’est cette curiosité qui m’a poussé à explorer le fonctionnement interne des packages Python et à apprendre comment les concevoir moi-même.