feat(stt-server): grounding strict — dire "doc ne le précise pas" au lieu d'inventer (#29)

Sur un sujet absent de la doc Funk, le 8B comblait le vide en devinant
(« j'ai un switch ? » → tantôt « Oui » tantôt « Non », fausse assurance).
Le grounding marche (docs=6) mais la doc n'a rien à ancrer.

- config.py : system_prompt durci — si la doc ne mentionne PAS explicitement
  l'élément, répondre « la doc Funk ne le précise pas », ne jamais affirmer
  oui/non par déduction ni inventer de détail (modèle, marque, nombre, nom).
- admin/infra/reseau.md : section « Topologie physique — switch cluster »
  (switch présent, modèle à confirmer) → comble le gap doc qui causait
  l'hallucination sur le matériel réseau.
- bump 0.3.0 → 0.3.1

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ALI YESILKAYA 2026-06-20 12:17:29 +02:00 committed by GitHub
parent 1b85d4ee65
commit d982308137
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 38 additions and 5 deletions

View file

@ -16,6 +16,37 @@ Tout ce qui suit s'exécute sur **storage-01** sauf mention contraire.
---
## Topologie physique — switch cluster
Le LAN cluster `192.168.10.0/24` repose sur **un switch Ethernet physique**. storage-01
n'a qu'une seule interface côté cluster (`enp6s0f3u2c2`, `192.168.10.1`) : elle ne peut
pas relier 4 machines en direct, donc un switch fait le fan-out.
```
Freebox (192.168.1.0/24, WAN domestique)
│ enp4s0 (192.168.1.200)
storage-01 ── enp6s0f3u2c2 (192.168.10.1)
[ SWITCH cluster ] ← switch physique (modèle à confirmer)
├── gpu-01 192.168.10.20
├── compute-01 192.168.10.11
├── compute-02 192.168.10.12
└── compute-03 192.168.10.13
```
| Élément | Valeur |
|---|---|
| Présence d'un switch | **Oui** — indispensable au câblage (1 NIC cluster sur storage-01 ↔ 4 machines) |
| Modèle / marque | ⚠️ **non documenté** — à relever physiquement (étiquette au dos) |
| Type (managé / non-managé) | à confirmer |
| Nb de ports utilisés | ≥ 5 (storage-01 + gpu-01 + 3 compute) |
| Managé ? | inconnu — pas de VLAN ni LACP configuré côté Talos/storage-01 à ce jour |
> À compléter : noter la référence exacte du switch (mod. + ports) lors d'un prochain
> passage physique au cluster. Le reste de la topologie L3 (routage, NAT) est ci-dessous.
---
## Route statique poste perso
Pour atteindre le LAN cluster depuis le poste (`192.168.1.10`) :

View file

@ -1,6 +1,6 @@
[project]
name = "stt-server"
version = "0.3.0"
version = "0.3.1"
description = "STT-server — orchestrateur AI du homelab Funk (API pour les clients STT)"
requires-python = ">=3.11"

View file

@ -1,3 +1,3 @@
"""STT-server — orchestrateur AI in-cluster pour les clients STT."""
__version__ = "0.3.0"
__version__ = "0.3.1"

View file

@ -27,9 +27,11 @@ class Settings:
"Tu es Hermes, l'assistant vocal du homelab Funk. "
"Réponds toujours en français, de façon concise (2-3 phrases maximum), "
"sans markdown ni listes. "
"Pour toute question sur Funk (cluster, machines, services, configuration), appuie-toi "
"EXCLUSIVEMENT sur la documentation fournie ci-dessous ; si l'information ne s'y "
"trouve pas, dis-le franchement plutôt que d'inventer.",
"Pour toute question sur Funk (cluster, machines, services, matériel, configuration), "
"appuie-toi EXCLUSIVEMENT sur la documentation fournie ci-dessous. "
"Règle stricte : si la doc ne mentionne pas explicitement l'élément demandé, réponds "
"« la doc Funk ne le précise pas » — n'affirme JAMAIS un oui ni un non par déduction, "
"et n'invente aucun détail (modèle, marque, nombre, nom).",
)
max_tokens: int = int(os.getenv("STT_MAX_TOKENS", "200"))
temperature: float = float(os.getenv("STT_TEMPERATURE", "0.7"))