# Wolof Voice Agent — Squelette (LangGraph + Groq/Gemini)
Pipeline : **App mobile (audio wolof) → STT Dikkte → texte wolof → traduction wolof→français →
agent LangGraph (Groq) avec tools par domaine métier → traduction
français→wolof → TTS Oolel → audio renvoyé**.
Les actions irréversibles (créer une commande, annuler une commande,
initier un paiement) déclenchent une **demande de confirmation explicite**
via le mécanisme `interrupt` de LangGraph, avant exécution réelle.
## Structure
```
app/
main.py # FastAPI : /voice-query, /debug/text-query, /confirm
config.py # config centralisée (.env)
core/
llm.py # init du modèle agent (Groq ou Gemini, singleton)
db.py # client MongoDB partagé (utilisé par le checkpointer)
graph/
state.py # AgentState : état partagé du graphe
prompts.py # system prompt (langage simple, oral)
nodes.py # noeuds : appel agent, exécution des tools
builder.py # construction du StateGraph + checkpointer MongoDB
tools/ # tools de l'agent, un fichier par domaine métier
catalogue.py # rechercher_produit, obtenir_prix, verifier_disponibilite
commande.py # panier (RAM), creer_commande, statut, annuler (avec interrupt)
livraison.py # estimer_delai, verifier_zone_couverte
paiement.py # lister_moyens_paiement, initier_paiement (avec interrupt)
navigation.py # expliquer_ecran
support.py # repondre_faq
models/schemas.py # schémas Pydantic
services/
stt.py # audio -> texte (dikkte HF wolof, Whisper local ou ElevenLabs)
translation.py # wolof français via Gemini
agent_runner.py # façade d'appel au graphe (invoke / confirm)
tts.py # texte wolof -> audio (Oolel-Voices)
```
## Démarrage rapide
```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.t …