Blog

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é)

  1. Vitrine technique — intégration LLM propre : JSON structuré, validation, dédup.
  2. Apprentissage — ma première brique LLM « produit », pas un chatbot.
  3. 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

InclusDétail
Mode classique10 questions vrai/faux
Contenu8 films × 3 difficultés (24 combos)
PopulationScript LLM + stockage Neon
ScoreAffiché 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

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.