Étude de cas / Data civique + IA

MONÉLU

Une interface publique vers l'activité parlementaire française, construite à partir d'archives statiques et conçue pour montrer l'origine de chaque réponse.

646Députés suivis
5 404Scrutins analysés
797K+Positions de vote
3 741Fragments indexés
Interface de chat IA de MonÉlu avec des questions civiques suggérées
Assistant IA / Questions guidées et réponses appuyées par des preuves
Profil d'un député dans MonÉlu avec ses métriques parlementaires
Profil député / Activité, votes, thèmes et données traçables

01 / Contrainte

L'API n'existait pas.

L'Assemblée nationale publie ses données ouvertes sous forme d'archives ZIP statiques plutôt que via une API REST stable. MonÉlu transforme ces exports irréguliers en un produit reproductible : récupérer, parser, valider, charger, modéliser, servir et rafraîchir sans perdre la provenance.

02 / Moteur data

De l'archive à la réponse fiable.

Le pipeline sépare acquisition, transformation, service et interface. Les reprises et upserts idempotents protègent l'ingestion ; dbt teste la couche analytique ; FastAPI reste sans état ; GitHub Actions maintient la production à jour.

AssembléeExports ZIP statiques
IngestionParsing Python + reprises
PostgreSQLSupabase + pgvector
dbt + APIMarts testés + FastAPI
ProduitInterface web Vercel

03 / Moteur IA

Router d'abord. Générer ensuite.

MonÉlu ne demande pas à un modèle de langage d'improviser sur chaque question. Les questions déterministes passent par SQL. Les questions sémantiques récupèrent des preuves pertinentes via pgvector avant de générer une réponse en français.

Voie SQL

Les comptages, classements, entités connues et comparaisons structurées utilisent PostgreSQL. La réponse est reproductible et sa source explicite.

Voie RAG

Les questions ouvertes récupèrent des preuves indexées, exposent les passages disponibles et identifient le RAG comme source.

04 / Vision d'ingénierie

La gouvernance fait partie de l'interface.

La confiance ne vient pas d'une prose soignée. Elle vient d'une recherche observable, de modèles testés, d'un routage explicite et d'un produit qui distingue les faits de la base des synthèses générées. Un score d'évaluation par mots-clés supérieur à 0,80 fournit une référence mesurable pour la qualité de recherche.

05 / Responsabilité

Construit sur toute la chaîne.

J'ai conçu et livré l'ingestion, les modèles dbt, la couche FastAPI, le routage SQL/RAG, la base d'évaluation et le produit web. L'objectif n'était pas une démo de chatbot, mais un système public dont le chemin de données reste inspectable.

Mon rôle

Architecture produit, data engineering, recherche IA, conception API, déploiement et livraison de l'interface.

Arbitrage

Le batch planifié correspond aux archives ZIP de l'Assemblée. Supabase et Railway réduisent l'exploitation tout en gardant des frontières de service claires.

Résultat

Un produit bilingue en ligne, avec marts testés, routage explicite des réponses, rafraîchissement quotidien et qualité de recherche mesurable.

La donnée publique devient utile quand son chemin reste visible.