fix(stt-server): retry brain + timeout par tentative + log timing effectif

Suite au déploiement 0.2.0, deux points observés en pilotant l'app en direct :

- Le log de timing (`ask … recall/gen/total`) n'émettait pas : uvicorn ne
  configure que ses propres loggers → on attache un handler INFO sur `stt_server`.
- La chaîne LiteLLM→llama-server (ROCm gfx1031) se fige par à-coups (~1-2 min,
  502 pour tous les appels, cf. incidents-llm-gpu.md). Résilience côté STT :
  brain tente 2× (fermeture du client httpx entre les essais → connexion neuve si
  le pool est vicié) et le timeout passe à 30s PAR tentative (≤ ~2× au pire).
  Un blip transitoire devient une requête récupérée au lieu d'un 502.

bump serveur 0.2.0 → 0.2.1

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-06-19 15:46:03 +02:00
parent ced79658cf
commit 917ffcfc32
5 changed files with 32 additions and 5 deletions

View file

@ -30,7 +30,9 @@ class Settings:
)
max_tokens: int = int(os.getenv("STT_MAX_TOKENS", "200"))
temperature: float = float(os.getenv("STT_TEMPERATURE", "0.7"))
request_timeout: float = float(os.getenv("STT_REQUEST_TIMEOUT", "60"))
# Timeout PAR tentative vers LiteLLM (brain fait jusqu'à 2 tentatives). Une réponse vocale
# avec /no_think tient en quelques secondes → 30s suffit, et borne l'attente d'un blip backend.
request_timeout: float = float(os.getenv("STT_REQUEST_TIMEOUT", "30"))
# Qwen3 est un modèle « thinking » → ajoute `/no_think` pour désactiver le raisonnement
# (sinon content vide / timeout). Inoffensif pour les modèles non-Qwen.
disable_thinking: bool = os.getenv("STT_DISABLE_THINKING", "true").lower() == "true"