Observatoire citoyen des responsables politiques français
Données publiques, regard indépendant
poligraph.fr · Issues · Contribuer
Poligraph centralise les informations publiques sur les responsables politiques français : mandats, votes parlementaires, déclarations de patrimoine, affaires judiciaires, activité législative et couverture médiatique. Le tout sourcé, vérifiable et présenté de manière factuelle.
| Transparence | Toute information est sourcée et vérifiable |
| Neutralité | Présentation factuelle, sans orientation politique |
| Légalité | Uniquement des données publiques |
| Présomption d'innocence | Mentionnée systématiquement pour les affaires en cours |
- Députés, sénateurs, eurodéputés, ministres, maires
- Parcours politique complet : mandats, partis, fonctions, carrière Wikidata
- Photos officielles, biographies générées par IA
- Score de notoriété calculé automatiquement
- Watchlist personnelle (Mon Observatoire)
- Scrutins de l'Assemblée nationale et du Sénat avec résumés IA
- Vote individuel de chaque parlementaire (pour / contre / abstention)
- Taux de participation et classement par parlementaire
- Suivi des dossiers législatifs : statut, timeline des actes, amendements, auteurs
- Liens croisés entre scrutins et dossiers législatifs
- Impact citoyen généré par IA pour chaque vote
- Déclarations de patrimoine HATVP (intérêts et activités)
- Portefeuille immobilier, valeurs mobilières, revenus
- Découverte automatique via Wikidata, Judilibre et presse (analyse IA)
- Timeline des procédures (mise en examen, condamnation)
- Modération éditoriale avec triage IA
- Fact-checks agrégés (AFP, Les Décodeurs)
- Municipales 2026 : candidatures, résultats par commune
- Historique des élections municipales 2020
- Pages par département et par institution
- Recherche par nom, code postal, département
- Filtres par parti, mandat, statut, chambre
- Comparateur de politiques (votes, patrimoine)
- Carte interactive des élus
- Récap hebdomadaire
L'IA est utilisée de manière ciblée et auditable, jamais pour produire du contenu éditorial libre.
Un assistant conversationnel permet d'interroger les données politiques en langage naturel : "Mon député a-t-il voté la réforme des retraites ?", "Quels sénateurs ont des affaires en cours ?". L'architecture RAG (pgvector + embeddings Voyage AI + reranking) garantit que les réponses sont ancrées dans les données vérifiées de la base, sans hallucination. Des garde-fous éditoriaux sont intégrés : présomption d'innocence automatique, refus de spéculer, sources traçables.
Le coeur technique de Poligraph : réconcilier les élus à travers 9+ bases de données officielles aux conventions de nommage incompatibles (nom de naissance, nom d'usage, nom de bulletin, accents, particules). Pour les 99,6% d'élus locaux sans identifiant Wikidata, un pipeline de matching flou avec scoring de confiance (SAME >= 0.95 auto-lié, UNDECIDED 0.70-0.95 revue humaine) permet de croiser les sources sans intervention manuelle à l'échelle.
- Impact citoyen généré pour chaque vote parlementaire (vulgarisation, neutralité stricte)
- Résumés automatiques des scrutins et dossiers législatifs
- Découverte d'affaires judiciaires dans la presse (classification + détection de mentions)
- Biographies générées à partir de données structurées Wikidata, puis validées
- Classification thématique des textes de loi (13 domaines)
- Newsletter hebdomadaire "Alerte Vote" avec contenu éditorial IA
- Auto-publication sur les réseaux sociaux (Twitter, Bluesky)
| Technologie | Usage |
|---|---|
| Next.js 16 | Framework React (App Router, Server Components) |
| TypeScript | Typage statique (strict) |
| Prisma 7 | ORM avec 44 modèles |
| PostgreSQL | Base de données (Supabase) + pgvector |
| Tailwind CSS | Styles |
| shadcn/ui | Composants UI |
| Inngest | Orchestration de jobs asynchrones |
| Claude Haiku | Génération IA (résumés, impacts, bios, analyse) |
| Voyage AI | Embeddings vectoriels (chatbot RAG) |
| Mailjet | Newsletter hebdomadaire |
| Vercel | Hébergement et CDN |
- Node.js 22+
- Compte Supabase (gratuit)
git clone https://github.com/ironlam/poligraph.git
cd poligraph
npm install
cp .env.example .env
# Éditer .env avec vos credentials Supabase
npm run db:generate
npm run db:push
npm run dev| Variable | Description | Obligatoire |
|---|---|---|
DATABASE_URL |
URL PostgreSQL (Supabase) | Oui |
ANTHROPIC_API_KEY |
Clé API Anthropic (génération IA) | Pour les scripts IA |
GOOGLE_FACTCHECK_API_KEY |
Clé API Google Fact Check | Pour sync:factchecks |
VOYAGE_API_KEY |
Clé Voyage AI (embeddings) | Pour le chatbot |
MAILJET_API_KEY |
Clé Mailjet | Pour la newsletter |
ADMIN_TOKEN |
Token d'authentification admin | Pour l'admin |
Voir docs/DATASOURCES.md pour la liste complète.
| Source | Données | Fréquence |
|---|---|---|
| Assemblée nationale | Députés, votes, dossiers législatifs | Quotidienne |
| Sénat | Sénateurs, votes | Quotidienne |
| data.gouv.fr | Gouvernement, élections, RNE | Quotidienne |
| HATVP | Déclarations de patrimoine | Hebdomadaire |
| Wikidata | Enrichissement, affaires, décès | Hebdomadaire |
| Judilibre | Jurisprudence | Hebdomadaire |
| Flux RSS presse | Mentions médiatiques | Horaire |
| Google Fact Check API | Fact-checks | Quotidienne |
# Politiques
npm run sync:assemblee # Députés (CSV data.gouv.fr)
npm run sync:senat # Sénateurs (API senat.fr)
npm run sync:gouvernement # Ministres (corrections + data.gouv.fr)
# Votes et législation
npm run sync:scrutins-an # Scrutins Assemblée nationale
npm run sync:scrutins-senat # Scrutins Sénat
npm run sync:legislation # Dossiers législatifs
# Transparence
npm run sync:hatvp # Déclarations HATVP
# Enrichissement
npm run sync:wikidata-ids # Réconciliation Wikidata
npm run import:wikidata # Affaires judiciaires (SPARQL)
npm run sync:press # Articles de presse (RSS)
npm run sync:factchecks # Fact-checks
# Pré-calcul
npm run sync:compute-stats # Stats de participation et classementsUn sync quotidien tourne automatiquement via GitHub Actions + Inngest. Les données sont mises à jour toutes les heures pour les votes et la presse, quotidiennement pour le reste.
src/
├── app/ # 73 pages (Next.js App Router)
│ ├── politiques/ # Fiches politiques
│ ├── votes/ # Scrutins et votes
│ ├── affaires/ # Affaires judiciaires
│ ├── assemblee/ # Dossiers législatifs
│ ├── declarations-*/ # Patrimoine HATVP
│ ├── elections/ # Élections municipales
│ ├── statistiques/ # Dashboard stats
│ ├── comparer/ # Comparateur
│ ├── chat/ # Chatbot IA
│ ├── mon-observatoire/ # Watchlist personnelle
│ ├── presse/ # Revue de presse
│ ├── mon-depute/ # Recherche par code postal
│ ├── admin/ # Interface d'administration
│ └── api/ # Endpoints REST
├── components/ # 25 répertoires de composants React
├── services/
│ └── sync/ # 39 services de synchronisation
├── inngest/ # 13 fonctions Inngest (sync, IA, newsletter, social)
├── lib/ # Utilitaires (DB, API clients, cache, email, social)
│ └── data/ # 12 modules de données (couche cachée)
├── config/ # Labels, constantes, Wikidata Q-IDs
└── types/ # Types TypeScript partagés
scripts/ # 107 scripts CLI
data/ # Corrections manuelles (gouvernement, etc.)
docs/ # Documentation technique
| Document | Description |
|---|---|
| ARCHITECTURE.md | Architecture technique |
| DATASOURCES.md | Sources de données et pipeline |
| DATA-MATCHING.md | Croisement de données et matching |
| LEGAL.md | Cadre juridique |
| CONTRIBUTING.md | Guide de contribution |
| SECURITY.md | Politique de sécurité |
| Projet | Description |
|---|---|
| poligraph | Application web principale |
| poligraph-mcp | Serveur MCP pour agents IA |
| poligraph-wikibot | Bot Wikidata (contribution open data) |
Les contributions sont les bienvenues ! Consultez le guide CONTRIBUTING.md.
Ce projet est sous licence AGPL-3.0.
Ce projet utilise exclusivement des données publiques. Les affaires judiciaires mentionnées sont documentées par des sources de presse vérifiables. La présomption d'innocence s'applique à toute personne non définitivement condamnée.