tfrere's picture
update
a61ba58

Don't Look Up - Server

Backend du jeu "Don't Look Up", un jeu narratif post-apocalyptique généré par IA.

🛠️ Installation

  1. Assurez-vous d'avoir Python 3.10+ et Poetry installés
  2. Clonez le repository
  3. Installez les dépendances :
cd server
poetry install
  1. Créez un fichier .env à la racine du dossier server avec :
MISTRAL_API_KEY=votre_clé_api_mistral

🚀 Lancement du serveur

poetry run dev

Le serveur démarrera sur http://localhost:8000

🎮 Tests du jeu

Le projet inclut un script de test qui permet de jouer au jeu en mode console et de tester la génération d'histoire.

Modes de lancement

  1. Mode interactif (normal) :
poetry run test-game
  1. Mode automatique (pour les tests) :
poetry run test-game --auto
  1. Mode automatique avec nombre de tours personnalisé :
poetry run test-game --auto --max-turns 20
  1. Mode automatique avec affichage du contexte complet :
poetry run test-game --auto --show-context

Codes de retour

En mode automatique, le script retourne :

  • Code 0 : Victoire
  • Code 1 : Défaite, erreur ou timeout (> 15 tours par défaut)

Exemple d'utilisation dans un script

# Lancer 5 tests automatiques d'affilée
for i in {1..5}; do
    echo "Test run $i"
    poetry run test-game --auto || echo "Test $i failed"
done

📚 Structure du projet

server/
├── api/            # Routes et modèles FastAPI
├── core/           # Logique métier et générateurs
│   ├── generators/ # Générateurs (histoire, univers, etc.)
│   └── prompts/    # Templates de prompts pour l'IA
├── scripts/        # Scripts utilitaires
└── services/       # Services externes (Mistral, etc.)

🔄 Workflow de génération

  1. Génération de l'univers (UniverseGenerator)

    • Style graphique
    • Genre
    • Époque
    • MacGuffin
    • Histoire de base
  2. Génération des segments d'histoire (StoryGenerator)

    • Texte narratif
    • Choix
    • Prompts d'images
    • Métadonnées (temps, lieu)
  3. Gestion de l'état du jeu (GameState)

    • Progression de l'histoire
    • Historique des choix
    • État du monde