Funk-lab/stt/client/pyproject.toml
ALI YESILKAYA 6e30f9535c
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>
2026-06-20 23:31:39 +02:00

38 lines
1.2 KiB
TOML

[project]
name = "stt"
version = "0.11.0"
description = "STT — client vocal Jarvis du homelab Funk (voix + HUD, parle au STT-server)"
requires-python = ">=3.11"
readme = "README.md"
# Client : voix locale + HUD. L'inférence est déléguée au STT-server (pas d'anthropic/qdrant ici).
dependencies = [
"faster-whisper>=1.0.0", # STT local
"sounddevice>=0.4.6", # capture micro
"numpy>=1.24.0",
"requests>=2.31.0", # appels HTTP vers le STT-server
"webrtcvad-wheels>=2.0.10",# VAD / wake word
"websockets>=12.0", # backend ↔ HUD
"tomli-w>=1.0.0", # écriture config TOML
]
# Backend ASR alternatif (asr_engine="onnx") : NVIDIA Parakeet/Canary/Nemotron en ONNX.
# Hors du core pour garder l'install légère. CPU : onnx ; GPU AMD : onnx-rocm.
[project.optional-dependencies]
onnx = ["onnx-asr>=0.11", "onnxruntime>=1.18"]
onnx-rocm = ["onnx-asr>=0.11", "onnxruntime-rocm>=1.18"]
[project.scripts]
stt = "stt.cli:main"
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["."]
include = ["stt*"]
# Le HUD (assets web) est livré comme données du package stt/
[tool.setuptools.package-data]
stt = ["hud/*", "hud/**/*"]