Projets personnels et de recherche couvrant l’IA générative, le NLP, l’ingénierie de données et l’architecture SaaS.
Code source : GitHub
Projet indépendant · en production
Aubier, plateforme Data & IA SaaS
Plateforme SaaS d’analyse de données par IA, multi-tenant et en production, conçue et développée seule de A à Z (backend, frontend, infrastructure), couverte par plus de 6 600 tests automatisés. Pipeline RAG hybride (pgvector + recherche full-text, GraphRAG, RAPTOR, reranking cross-encoder), moteur text-to-SQL avec streaming SSE, extraction documentaire multi-format (PDF, DOCX, images via OCR/VLM) et 22 connecteurs async (PostgreSQL, MySQL, MSSQL, Oracle, MongoDB, S3, ERP et comptabilité comme Sage, Cegid et Pennylane, APIs SaaS OAuth2, scraping). Maîtrise des coûts LLM : routing multi-provider (litellm), caching et suivi des coûts (Langfuse). Sécurité LLM de bout en bout : isolation multi-tenant stricte, validation AST du SQL généré, sandboxing du code, RBAC, JWT RS256, SSO, 2FA, chiffrement Fernet, conformité RGPD, audit logging. Observabilité OpenTelemetry/Prometheus, orchestration Celery, prédictions AutoML, billing Stripe.
Ce site, conçu, développé et exploité seul, sert de vitrine en production. Un agent LangGraph (FastAPI, PostgreSQL/pgvector, mémoire de conversation persistée) répond aux recruteurs sur mon parcours, évalue l’adéquation d’une offre d’emploi et prépare un message de contact. Chaîne de fournisseurs LLM à repli automatique (Claude en tête, puis Gemini et Mistral) avec cache de prompt, pour un coût d’inférence sous le demi-centime par réponse. Classifieur d’injection de prompt (ONNX Runtime, 24 ms) retenu parmi 7 modèles comparés : sur un jeu tenu à part, le rappel passe de 10 % à 73 %, sans bloquer aucune vraie question. Évaluation RAG par un juge LLM (ancrage, complétude, absence d’invention) sur 38 cas de référence, 35 réussis, rejouée à chaque changement de modèle ; un moniteur privé en extrait les cas candidats depuis les conversations réelles. Un Worker Cloudflare (Hono, D1, KV, Workers AI, tâches planifiées) expose un serveur MCP public, interrogeable par tout client compatible, ainsi qu’une veille IA quotidienne et un radar des signaux de l’écosystème IA. Monitoring Langfuse auto-hébergé et OpenTelemetry, suivi du coût d’inférence, 20 décisions d’architecture documentées (ADR), intégration continue sur un runner auto-hébergé.
Applications privées, agents et serveurs MCP authentifiés
4 applications en production · 2 serveurs MCP privés
Quatre applications privées conçues et exploitées seul (FastAPI, HTMX, plus de 3 000 tests) : un screener boursier, une application métier chiffrée au repos, un moniteur de l’agent du site et un tableau de bord d’exploitation. Deux d’entre elles embarquent un agent à outils écrit sans framework et exposent un serveur MCP privé protégé par OAuth, où toute écriture attend une confirmation humaine.
MCP
OAuth
Agents IA
Claude
Validation humaine
FastAPI
HTMX
DuckDB
SQLCipher
n8n
Docker
En production
-
HistText
Plateforme d’analyse de textes à grande échelle
Plateforme full-stack pour l’analyse de textes historiques chinois à grande échelle (plus de 15 millions de documents, 20 milliards de mots). Backend Rust haute performance, API REST, interface React avec visualisations interactives (graphes réseau, chronologies), moteur de recherche full-text Apache Solr, pipeline NER multilingue, et package client R (histtext) distribué depuis GitLab. Déployée auprès de plus de 200 utilisateurs de la communauté internationale de recherche en histoire numérique dans le cadre du projet ENP-China (subvention ERC avancée), puis soutenue par une bourse ERC Proof of Concept pour sa valorisation.
Sélection de ressources NLP dédiées à l’extraction d’événements : papiers, datasets, modèles et code. Référence largement utilisée par la communauté de recherche NLP internationale, avec 580 étoiles GitHub au 3 septembre 2026. Maintenue de 2019 à 2024.
Outil en ligne de commande qui installe dans un dépôt le dossier des décisions et des preuves d’un projet embarquant de l’IA : pourquoi ce modèle, quelle évaluation justifie un seuil, quelle limite de coût, quel repli. Un noyau toujours posé (registre de décisions, index de preuves séparant le mesuré de l’estimé et de l’inconnu, manifeste à sommes de contrôle) et cinq modules optionnels choisis d’après les risques du projet. Registres en CSV relus dans une pull request, contrôle structurel en intégration continue. Python 3.10+, publié sur PyPI.
Miroir public de la veille technologique du site, publié en Markdown bilingue sur GitHub. Un script Node sans dépendance, déclenché deux fois par jour par GitHub Actions, appelle les routes publiques du Worker Cloudflare qui calcule la veille, met en forme le digest d’actualités du jour, puis archive la journée écoulée avec renvois de sources numérotés, navigation entre les jours et index mensuel. Le dimanche, le récapitulatif de la semaine remplace le digest quotidien.
Suite d’outils transformant des images numérisées de journaux historiques en corpus sémantiquement enrichis. Pipeline complet : OCR via Google Cloud Vision, interface d’annotation web interactive avec raccourcis clavier, export aux formats standards (CoNLL, JSON). Conçu pour des documents multilingues complexes (chinois, anglais, français).
Le plus grand dataset NER de presse chinoise historique annoté à la main pour la période de transition (1872-1949), selon l’article LREC-COLING : 196 documents du Shenbao, 6 491 entités (personnes, lieux, organisations, dates) sur 121 971 caractères, avec liage d’entités et coréférence. Pipeline de contrôle qualité automatisé, benchmarks reproductibles avec modèles BERT fine-tunés, et données librement disponibles pour la communauté.
Fine-tuning de modèles de segmentation pour le chinois transitionnel, en collaboration avec Academia Sinica. Atteint un F-score de plus de 83 %, soit +35 points face au tokenizer Jieba, en explorant différentes stratégies d’adaptation de domaine pour une variété linguistique peu documentée.
Framework d’augmentation de données simulant les artefacts OCR (substitutions, suppressions, insertions de caractères) observés dans les documents historiques numérisés. Réduit l’impact des erreurs OCR de 50 % sur les tâches NER et de classification, avec un benchmark standardisé pour évaluer la robustesse des modèles.
Transfer learning & adaptation au domaine historique
Développement & optimisation ML
Étude des méthodes de transfert de modèles pour la NER sur documents historiques (genres hors domaine, OCR bruité, états anciens de la langue), selon l’effort investi : décrire les données cibles, annoter quelques textes ou choisir les ressources de pré-entraînement. Expériences avec des Transformers sur les corpus historiques LitBank et HIPE : 250 phrases annotées suffisent à retrouver 93 % des performances obtenues avec toutes les données, et les erreurs OCR se traitent en simulant du bruit au pré-entraînement et avec des Transformers sensibles aux caractères.