Quelles IA pensent-elles qui sera le prochain président de la France ?
Un projet expérimental : chaque jour à 07:00 UTC, un workflow GitHub Actions interroge plusieurs modèles d'IA avec exactement la même question et archive leurs réponses. Le site web affiche un compte à rebours jusqu'au second tour de la présidentielle 2027, les dernières réponses, une chronologie cliquable et un décompte global.
🇫🇷 Construit avec curiosité · 🤖 Pas une prévision · ⏳ Rendez-vous le 25 avril 2027
GitHub Pages : crazyhoesl.github.io/PPDF
(Activer Pages : Settings → Pages → Source: Deploy from a branch → Branch: main /docs)
┌───────────────┐ cron 07:00 UTC ┌─────────────────┐
│ GitHub Action │ ─────────────────► │ scripts/poll │
└───────────────┘ └────────┬────────┘
│ fan-out
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Gemini │ │ Mistral │ ... │ Cerebras │
└─────┬────┘ └────┬─────┘ └─────┬────┘
└────────────┬─────┴──────────┬─────────┘
▼ ▼
data/latest.json data/history/YYYY-MM-DD.json
│
▼
git commit & push
│
▼
GitHub Pages rebuild
Tous ont un free tier généreux, sans carte de crédit :
| Provider | Model | Secret name | Sign up |
|---|---|---|---|
| Google Gemini | gemini-2.5-flash |
GEMINI_API_KEY |
aistudio.google.com |
| Mistral | mistral-large-latest |
MISTRAL_API_KEY |
console.mistral.ai |
| Groq | llama-3.3-70b-versatile |
GROQ_API_KEY |
console.groq.com |
| OpenAI | gpt-5.4 (flagship) |
OPENAI_API_KEY |
platform.openai.com |
| Anthropic | claude-opus-4-7 (flagship) |
CLAUDE_API_KEY |
console.anthropic.com |
Si un secret manque, le provider est simplement sauté (aucun crash). Ajouter les secrets sous Settings → Secrets and variables → Actions.
PPDF/
├── .github/workflows/daily-poll.yml # cron + workflow_dispatch
├── scripts/
│ ├── poll.mjs # entry point
│ ├── providers.mjs # 5 adaptateurs API
│ └── candidates.mjs # normalisation des noms
├── data/
│ ├── latest.json # dernière exécution
│ ├── history-index.json # liste des dates disponibles
│ └── history/YYYY-MM-DD.json # un fichier par jour
└── docs/ # GitHub Pages root
├── index.html
├── app.js # rendu du site
├── style.css # design Mercedes-inspiré
└── i18n.js # FR, EN, DE, IT, ES
Workflow dispatch depuis l'onglet Actions, ou en local :
export GEMINI_API_KEY=...
export MISTRAL_API_KEY=...
# etc.
node scripts/poll.mjs- Ajouter une fonction
call(apiKey, prompt) → stringdansscripts/providers.mjs - L'ajouter au tableau
providersexporté - Ajouter le secret correspondant dans le workflow
- Ajouter le secret dans GitHub → c'est tout
- Ces modèles répondent sur base de leurs données d'entraînement (et parfois avec recherche web selon le provider). Ils ont tous des biais différents et une fraîcheur différente.
- La normalisation des noms est basique : un alias manquant peut envoyer quelqu'un dans "Unknown". Corriger dans
scripts/candidates.mjs. - Le site suppose que le 2e tour aura lieu le 25 avril 2027. Si la date officielle diffère, changer
TARGETdansdocs/app.js.
MIT.