sanitize: remove sensitive IPs/credentials from README, add INFRA_PRIVATE.md to .gitignore
This commit is contained in:
@@ -6,3 +6,4 @@ __pycache__/
|
||||
*.sqlite
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
INFRA_PRIVATE.md
|
||||
|
||||
@@ -7,6 +7,8 @@ Un LLM joue le rôle de MJ narrateur, un second LLM anime les PNJ.
|
||||
**Dashboard** → [fallout.coyoteos.ovh](https://fallout.coyoteos.ovh) (PipBoy)
|
||||
**Gitea** → [git.coyoteos.ovh](https://git.coyoteos.ovh) — repo `Corback/fallout-venice`
|
||||
|
||||
> ⚠️ Les informations de connexion (IPs, credentials, clés SSH) sont dans `INFRA_PRIVATE.md` (local uniquement, non commité).
|
||||
|
||||
---
|
||||
|
||||
## Architecture générale
|
||||
@@ -14,7 +16,6 @@ Un LLM joue le rôle de MJ narrateur, un second LLM anime les PNJ.
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ AMPÈRE (Oracle ARM) │
|
||||
│ 82.70.224.131 │
|
||||
│ │
|
||||
│ ┌──────────────┐ ┌───────────────┐ ┌────────────┐ │
|
||||
│ │ run.py S1 │ │ run.py S2 │ │ PipBoy │ │
|
||||
@@ -30,30 +31,16 @@ Un LLM joue le rôle de MJ narrateur, un second LLM anime les PNJ.
|
||||
│ │ ChromaDB :8800 — collection fallout_lore │ │
|
||||
│ │ 1403 chunks : règles 2D20, lore canon, ambiance │ │
|
||||
│ └────────────────────────────────────────────────────┘ │
|
||||
└────────────────────────────┬────────────────────────────┘
|
||||
│ SSH tunnel :15432
|
||||
┌────────────────────────────▼────────────────────────────┐
|
||||
│ VIGILE (OVH) 79.72.30.231 │
|
||||
└────────────────────────┬────────────────────────────────┘
|
||||
│ SSH tunnel :15432
|
||||
┌────────────────────────▼────────────────────────────────┐
|
||||
│ VIGILE (OVH) │
|
||||
│ PostgreSQL — base "fallout" │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Infra & accès
|
||||
|
||||
| Serveur | IP | Rôle | Clé SSH |
|
||||
|---------|----|------|---------|
|
||||
| Ampère | 82.70.224.131 | Calcul — LLM, sim, dashboard | `oracle.key` |
|
||||
| Vigile | 79.72.30.231 | PostgreSQL | `vigile_backup` |
|
||||
|
||||
**Tunnel DB actif sur Ampère** : `localhost:15432` → Vigile:5432
|
||||
**ChromaDB** : `localhost:8800` — API v2 uniquement (`/api/v2/...`)
|
||||
**Ollama** : `localhost:11434`
|
||||
**PipBoy (Docker)** accède à Ollama via `host.docker.internal:11434`
|
||||
|
||||
---
|
||||
|
||||
## Stack technique
|
||||
|
||||
| Composant | Technologie | Détail |
|
||||
@@ -113,7 +100,7 @@ fallout-venice/
|
||||
| 3 | PASSAGE | Décor narratif | Jamais |
|
||||
|
||||
Actuellement tous les PNJ sont animés par le **moteur Python seul**.
|
||||
Le LLM PNJ sera déclenché uniquement sur **interaction joueur directe** (V2).
|
||||
Le LLM PNJ sera déclenché uniquement sur **interaction joueur directe** (Phase 5).
|
||||
|
||||
---
|
||||
|
||||
@@ -121,7 +108,7 @@ Le LLM PNJ sera déclenché uniquement sur **interaction joueur directe** (V2).
|
||||
|
||||
`independance` | `nola_vieux_carre` | `baton_rouge` | `laplace`
|
||||
|
||||
Règles : pas de rencontres lambda/groupe. Seuls les raids de faction (faible probabilité) et le commerce PNJ-à-PNJ sont possibles. Les marchands peuvent s'y retrouver sans rencontrer de bêtes.
|
||||
Règles : pas de rencontres lambda/groupe. Seuls les raids de faction (faible probabilité) et le commerce PNJ-à-PNJ sont possibles.
|
||||
|
||||
---
|
||||
|
||||
@@ -145,7 +132,7 @@ Configurables depuis le PipBoy — prise en compte au **prochain jour** (hot-rel
|
||||
|
||||
| Catégorie | Chunks | Contenu |
|
||||
|-----------|--------|---------|
|
||||
| `regles_core` | ~934 | Règles 2D20 Fallout (avec 299 chunks migrés depuis `type` → `category`) |
|
||||
| `regles_core` | ~934 | Règles 2D20 Fallout |
|
||||
| `regles_supplement` | 279 | Suppléments et extensions |
|
||||
| `lore_inspiration` | 86 | Inspiration univers Fallout |
|
||||
| `ambiance` | 43 | Descriptions atmosphériques |
|
||||
@@ -156,7 +143,7 @@ Configurables depuis le PipBoy — prise en compte au **prochain jour** (hot-rel
|
||||
|
||||
---
|
||||
|
||||
## Performances LLM mesurées (16/06/2026, Ampère ARM)
|
||||
## Performances LLM mesurées (Ampère ARM)
|
||||
|
||||
| Joueurs simultanés | Tick complet | Actions/heure | Viable tick 10min |
|
||||
|-------------------|-------------|---------------|-----------------|
|
||||
@@ -165,8 +152,6 @@ Configurables depuis le PipBoy — prise en compte au **prochain jour** (hot-rel
|
||||
| 10 | 1m17 | 46 | ✓ |
|
||||
| 50 | 3m32 | 16 | ✓ (8 timeouts) |
|
||||
|
||||
MJ 14b : constant ~30s indépendamment du nombre de joueurs (commence après tous les PNJ).
|
||||
Cold start : ~90s si Ollama a déchargé les modèles (inactivité prolongée).
|
||||
**Plafond recommandé V1 : 10-15 joueurs actifs simultanés.**
|
||||
|
||||
---
|
||||
@@ -174,7 +159,7 @@ Cold start : ~90s si Ollama a déchargé les modèles (inactivité prolongée).
|
||||
## Lancement des simulations
|
||||
|
||||
```bash
|
||||
# SSH sur Ampère
|
||||
# SSH sur Ampère (voir INFRA_PRIVATE.md pour la clé et l'IP)
|
||||
cd /home/ubuntu/fallout-venice/src/engine
|
||||
|
||||
# Session 1
|
||||
@@ -206,24 +191,6 @@ python3 lore_enricher.py --list-factions # liste
|
||||
```
|
||||
|
||||
Valider les propositions → PipBoy onglet **ENRICHISSEMENT**
|
||||
Les propositions acceptées sont indexées dans `fallout_lore_enriched` (Chroma).
|
||||
|
||||
---
|
||||
|
||||
## Tests LLM
|
||||
|
||||
```bash
|
||||
cd /home/ubuntu/fallout-venice/tools
|
||||
|
||||
# Stress test simple
|
||||
python3 llm_crash_test.py --mode simultane --rounds 5 --pnj-count 2
|
||||
|
||||
# Test capacité (1 / 5 / 10 / 50 joueurs)
|
||||
python3 capacity_test.py
|
||||
python3 capacity_test.py --quick # sans le test 50 joueurs
|
||||
```
|
||||
|
||||
Les résultats sont écrits dans `src/config/crash_results.json` et lisibles depuis le PipBoy (onglet OUTILS → Charger les résultats).
|
||||
|
||||
---
|
||||
|
||||
@@ -237,9 +204,7 @@ Les résultats sont écrits dans `src/config/crash_results.json` et lisibles dep
|
||||
| `OLLAMA_URL` | `http://localhost:11434` | Endpoint Ollama |
|
||||
| `MODEL_MJ` | `qwen2.5:14b` | Modèle MJ narrateur |
|
||||
| `MODEL_PNJ` | `qwen2.5:7b` | Modèle animation PNJ |
|
||||
| `DB_HOST` / `DB_PORT` | `127.0.0.1` / `15432` | PostgreSQL via tunnel SSH |
|
||||
| `SIM_CONFIGS_DIR` | `/app/src/config` | Répertoire configs JSON |
|
||||
| `CRASH_RESULTS_PATH` | `src/config/crash_results.json` | Sortie tests LLM |
|
||||
| `DB_HOST` / `DB_PORT` | voir INFRA_PRIVATE.md | PostgreSQL via tunnel SSH |
|
||||
|
||||
---
|
||||
|
||||
@@ -247,27 +212,20 @@ Les résultats sont écrits dans `src/config/crash_results.json` et lisibles dep
|
||||
|
||||
**ChromaDB**
|
||||
- API v2 uniquement — `/api/v1/` retourne `{"error":"Unimplemented"}`
|
||||
- Requêtes par **UUID**, pas par nom de collection (récupérer l'UUID d'abord via `GET /collections`)
|
||||
- La collection `fallout_vst` **n'existe pas** — c'est `fallout_lore`
|
||||
- 299 chunks avaient le champ `type` au lieu de `category` — corrigé en juin 2026
|
||||
|
||||
**Dashboard**
|
||||
- Le fichier actif est `/home/ubuntu/fallout-visu/app.py` (monté Docker), pas `dashboard/app.py`
|
||||
- Toujours copier les deux après modification : `scp dashboard/app.py ubuntu@82.70.224.131:/home/ubuntu/fallout-visu/app.py`
|
||||
- Toujours copier les deux après modification
|
||||
|
||||
**Simulation**
|
||||
- `run.py` vérifie le statut DB toutes les **5 ticks** — STOP depuis PipBoy n'est pas instantané
|
||||
- Hot-reload config JSON au **début de chaque jour** (tick 0), pas immédiatement
|
||||
- `init_pnj.py` lit `SESSION_ID` depuis l'env (plus hardcodé)
|
||||
|
||||
**Réseau Docker**
|
||||
- Le container PipBoy accède à Ollama via `host.docker.internal:11434`
|
||||
- Une règle iptables autorise 172.20.0.0/16 → port 11434. Si elle disparaît après reboot :
|
||||
```bash
|
||||
sudo iptables -I INPUT 1 -s 172.20.0.0/16 -p tcp --dport 11434 -j ACCEPT
|
||||
sudo iptables-save | sudo tee /etc/iptables/rules.v4
|
||||
```
|
||||
- Une règle iptables autorise le subnet Docker → port 11434. Voir INFRA_PRIVATE.md si disparaît après reboot.
|
||||
|
||||
**Tunnel SSH DB**
|
||||
- Le container PipBoy crée son propre tunnel au démarrage (clé `/ssh/vigile.key`)
|
||||
- Si DB inaccessible : `docker restart fallout-visu`
|
||||
**Infos de connexion**
|
||||
- Voir `INFRA_PRIVATE.md` (local uniquement, dans `.gitignore`)
|
||||
|
||||
Reference in New Issue
Block a user