mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-09 01:14:42 +02:00
feat(stt-client): intentions vocales lecture seule — ouvrir, état du cluster, valeur Ghostfolio (#37)
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>
This commit is contained in:
parent
704d212e15
commit
6e30f9535c
10 changed files with 259 additions and 10 deletions
|
|
@ -148,7 +148,8 @@ au prompt système (`STT_DISABLE_THINKING`, défaut `true` ; inoffensif hors Qwe
|
|||
| — ASR | `stt/client/stt/voice/asr/` | backend enfichable : `whisper` (faster-whisper CPU, défaut) \| `onnx` (Parakeet/Canary/Nemotron via onnx-asr, multilingue, streaming-ready). Choisi par `[voice] asr_engine` |
|
||||
| — api | `stt/client/stt/api.py` | `ServerClient` → `POST /v1/ask` |
|
||||
| — UI/HUD | `stt/client/stt/ui/` + `hud/` | HTTP statique + websocket bidirectionnel (états → HUD ; réglages **et messages texte** → backend) ; HUD embarqué dans le package |
|
||||
| — portail | `stt/client/stt/portal/` | `registry.py` (services config-driven `[[services]]`) + `health.py` (StatusPoller). Panneau « Services » du HUD : tuiles + **pages détail** (description, **santé live**, composants, alertes, bouton Ouvrir). Santé = probe HTTP + **Prometheus** `up{}`/kube-state-metrics + **Alertmanager**. Ouvre l'URL dans le navigateur normal. Aussi : commande vocale « ouvre <service> » |
|
||||
| — portail | `stt/client/stt/portal/` | `registry.py` (services config-driven `[[services]]`) + `health.py` (StatusPoller) + `intents.py` (intentions vocales) + `ghostfolio.py`. Panneau « Services » du HUD : tuiles + **pages détail** (description, **santé live**, composants, alertes, bouton Ouvrir). Santé = probe HTTP + **Prometheus** `up{}`/kube-state-metrics + **Alertmanager** |
|
||||
| — intentions vocales | `stt/client/stt/portal/intents.py` | lecture seule, court-circuitent le LLM (interceptées dans `engine._respond`) : « ouvre <service> » (ouvre la page), « état du cluster/services » (résumé santé parlé), « combien sur mon ghostfolio » (API Ghostfolio, `[ghostfolio] access_token`) |
|
||||
| STT-server | `stt/server/` (conteneur) | FastAPI : `/healthz`, `/v1/ask` ; `brain.py` → LiteLLM |
|
||||
| Image | `ghcr.io/alkatrazz24/funk-stt-server` | construite par `.github/workflows/build-stt-server.yml` |
|
||||
| Manifests | `k8s/apps/stt/` | Deployment, Service, IngressRoute (`stt.lab.local`) |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue