Pourquoi un quiz Harry Potter dans mon portfolio
- hpq
- architecture
- adr
- gemini
- llm
Mon hub était jusqu'ici un site vitrine + blog, sans base de données ni appel externe au runtime. Avec le Quiz Harry Potter (HPQ), j'introduis une brique applicative : des questions générées par Gemini, stockées dans Neon Postgres, servies instantanément au joueur.
Voici la vision — avant les détails techniques des articles suivants.
Le principe central
Le joueur ne attend jamais le LLM. Il pioche dans une base déjà peuplée par un script (npm run hpq:populate). La génération se fait en arrière-plan ; la partie, elle, doit être immédiate.
Un seuil de stock par combo film + difficulté déclenchera plus tard une repopulation automatique (cron Vercel) — mais le principe reste le même : zéro latence perçue côté joueur.
Triple objectif (assumé)
- Vitrine technique — intégration LLM propre : JSON structuré, validation, dédup.
- Apprentissage — ma première brique LLM « produit », pas un chatbot.
- Usage perso — un quiz HP qui marche vraiment, que je peux montrer.
Cette triple nature cadre le scope : pas de sur-architecture avant un MVP jouable.
MVP v1 — ce qui est in
| Inclus | Détail |
|---|---|
| Mode classique | 10 questions vrai/faux |
| Contenu | 8 films × 3 difficultés (24 combos) |
| Population | Script LLM + stockage Neon |
| Score | Affiché en fin de partie |
MVP v1 — ce qui est out
- Mode progressif, survie, QCM, réponse libre
- Multi-joueurs, leaderboard, comptes, historique
- i18n
Report volontaire : chaque feature hors scope aurait son propre impact sur le pool de questions ou la complexité infra.
Fiabilité du contenu
Une affirmation doit être factuellement exacte (vrai) ou fausse mais crédible (faux) — jamais absurde. Zéro hallucination est irréaliste ; l'approche retenue est une double passe Gemini (génération + validation) avec grounding sur des fiches de faits par film, plus une dédup par tag sujet au populate.
Définition d'un doublon (version courte)
Deux questions sont doublons si elles portent sur le même sujet précis (personnage, objet, événement) — pas juste le même thème large. La vérification s'applique par combo film/difficulté, pas sur tout le catalogue.
Dans une manche : pas deux fois le même énoncé. Entre parties : les questions peuvent revenir.
Contraintes non négociables pour la v1
- Budget : Gemini free tier uniquement
- Déploiement : même repo Next.js que le hub (détail dans l'article suivant)
Où en est le projet
Le jeu tourne sur /hpq en prod. Le bootstrap du stock (50 questions par difficulté sur le film 1) avance au rythme des quotas API — le repli multi-modèles Gemini est en place pour enchaîner les modèles quand l'un est saturé.
La série complète est documentée sur le blog — dernier volet : validation LLM.