docs(adr-007): decide Gemini Live -> Deepgram migration for EO Live
Some checks are pending
CI / quality (push) Waiting to run

- New ADR-007: architecture decision to migrate T1+T2 Live audio
  from Gemini Live to decoupled Deepgram (STT nova-3 + DeepSeek
  LLM + Aura-2 TTS), following conclusive POC. Two-phase plan:
  parallel module behind EO_STT_PROVIDER flag, then full cutover
  with Gemini Live code removal (no long-term dual-stack intent).
- ROADMAP.md: new Sprint 7c (migration, high-level entry, detailed
  breakdown deferred to dedicated planning session). Note added
  on Sprint 7e (TD-23 caveat resolved once Deepgram is live,
  streaming-native transcription).
- TECH_DEBT.md v1.32: FTD-45/46 stay frozen (§3bis), resolution
  path now points to ADR-007. No active FTD cap breach (15
  unchanged) — deliberate choice to defer reopening until
  Sprint 7c execution begins.

Docs only, no code changes.
This commit is contained in:
Hermann_Kitio 2026-07-02 06:13:58 +03:00
parent 01f052dadc
commit 4dd8df53e1
3 changed files with 79 additions and 3 deletions

View file

@ -172,6 +172,13 @@
- Tests manuels Groupe D étendu (T1 Live) rejoués
- Commit refactor(t1-live)
## Sprint 7c — Migration audio EO Live : Gemini Live → Deepgram (T1 + T2)
- Décision actée (**ADR-007**) de migrer l'architecture audio de Gemini Live natif vers une architecture découplée Deepgram (STT nova-3 + DeepSeek LLM + TTS Aura-2), suite à un POC concluant : transcription quasi parfaite à débit lent (vs confusions de langue/omissions Gemini), relances ancrées sur le discours réel du candidat, coût 4-5x inférieur.
- Implémentation en deux temps : (1) construction du module Deepgram en parallèle de Gemini Live derrière un flag `EO_STT_PROVIDER=gemini|deepgram` pour comparaison en conditions réelles, (2) bascule complète + retrait du code Gemini Live (`geminiLive.ts`, usages `t1live.ts`/`t2live.ts`).
- Résout FTD-45, FTD-46 (frontend, gelées avec renvoi vers cet ADR — cf. `TECH_DEBT.md`) et TD-22/TD-23 (backend, hors scope frontend — dépôt séparé).
- Découpage fin (sous-sprints backend/frontend) à définir dans une session de planification dédiée avant exécution — non détaillé ici.
## Sprint 7e — Transcription live à l'écran (T2 + T1)
- Affichage incrémental temps réel des prises de parole pendant le dialogue : router `inputTranscription` + `outputTranscription` (déjà produits côté backend pour l'évaluation) jusqu'au frontend via le WebSocket, puis rendu progressif à l'écran.
@ -179,6 +186,7 @@
- **Chantier non trivial** (flux WS + affichage incrémental) — à décomposer en sous-étapes ; pas « cosmétique ».
- **MAJ post-7a** : source backend de la transcription déjà disponible (confirmé par 7a).
- **Caveat TD-23** : en VAD manuel, `inputTranscription` candidat n'est flushé qu'à `activityEnd` (pas token par token) → l'affichage incrémental temps réel n'est possible que pour `outputTranscription` (examinateur) ; l'incrémental côté candidat est à reconcevoir.
- **Note (ajoutée 2026-07-02)** : à réévaluer/simplifier une fois la migration **Sprint 7c** (Deepgram, ADR-007) effectuée — le caveat TD-23 ci-dessus disparaît avec un provider nativement streaming. Ce sprint pourrait devenir substantiellement plus simple, voire trivial, une fois 7c terminé.
## Sprint 8 — Mode Examen