Funk-lab/stt/client/config
alkatrazz e218d30d84 feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio
Asa répond/agit en local (sans LLM) sur trois intentions déterministes, interceptées
dans engine._respond avant l'appel au STT-server :

  • « ouvre <service> »                 → ouvre la page dans le navigateur
  • « état du cluster / des services »  → résumé de santé parlé (depuis le poller)
  • « combien sur mon ghostfolio »      → valeur du portefeuille (API Ghostfolio)

- portal/intents.py : route_intent (ordre ghostfolio > statut > ouvrir) + summarize_status.
- portal/ghostfolio.py : client API config-driven (auth/anonymous → JWT → portfolio/details),
  lecture seule, dégradation propre si pas de token.
- voice/engine.py : attribut intent_router branché dans _respond (mode « portail »,
  court-circuite le LLM).
- ui/app.py : construit le routeur (services, ouverture, dernière santé, Ghostfolio).
- config : section [ghostfolio] (url, access_token vide par défaut, timeout).
- bump 0.10.0 → 0.11.0.

Stacked sur #36 (le résumé d'état utilise le StatusPoller). Validé : routage des
intents (ouvrir via alias, ghostfolio avec qualificatif, statut, hors-sujet → LLM),
résumé d'état, et interception moteur de bout en bout (LLM non appelé sur intent).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 23:30:31 +02:00
..
README.md feat(stt): HUD avancé (phase 4) — design Claude Design câblé au backend (#17) 2026-06-18 22:03:39 +02:00
stt.example.toml feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio 2026-06-20 23:30:31 +02:00

stt/config — personnalisation

Tout ce qui se change sans recompiler. stt --setup copie stt.example.toml vers ~/.config/stt/stt.toml.

config/
├── stt.example.toml   # config de référence (serveur/modèle, voix, ui, mémoire)
└── README.md

Les portraits de l'avatar et le thème ne vivent plus dans config/ : le HUD les gère lui-même. Avatars → stt/hud/avatars/ (servis par le HUD — voir son README). Thème → réglé en direct dans le drawer Réglages (intensité d'accent, mémorisé en localStorage).

Points de personnalisation

Quoi Note
Avatar (portraits) stt/hud/avatars/<set>-{idle,think,speak}.png jeu choisi dans Réglages → Avatar
Thème / accent Réglages → intensité (HUD) rose doux → rouge, persisté en localStorage
Voix TTS ~/.local/share/piper/<voix>.onnx + voice.piper_voice Piper
Mot de réveil voice.wake_word (ou Réglages → mot de réveil) défaut « hermes »
Modèle (cerveau) server.model · stt --model · Réglages → mode cerveau alias LiteLLM

🔒 Pas de clé API côté client : l'inférence (et donc Claude) passe par le STT-server in-cluster, jamais par le poste.