Backlog
User Stories
US4.1
En tant qu'utilisateur, un bouton flottant teal est visible sur tous les écrans et ouvre le copilote
must
3 pts
US4.2
En tant qu'utilisateur, je peux discuter en français ou anglais avec le copilote
must
3 pts
US4.3
En tant qu'utilisateur, je peux demander "Propose un voyage 7j au Maroc, budget 1500€"
must
13 pts
US4.4
En tant qu'utilisateur, l'itinéraire généré s'affiche en timeline visuelle + carte avec tracé
must
8 pts
US4.5
En tant qu'utilisateur, je peux modifier l'itinéraire (changer jour, remplacer activité, ajuster budget)
must
8 pts
US4.6
En tant qu'utilisateur, je peux demander "Où manger ce soir proche de moi ?"
must
5 pts
US4.7
En tant qu'utilisateur, je peux demander "Est-ce safe d'aller à Medina la nuit ?"
must
5 pts
US4.8
En tant qu'utilisateur, je peux demander "Montre-moi les meilleurs deals vols depuis Paris"
should
5 pts
US4.9
En tant qu'utilisateur, le copilote utilise mon profil IA (jumeau digital) pour personnaliser les réponses
must
8 pts
US4.10
En tant qu'utilisateur, l'historique de mes conversations IA est accessible
should
3 pts
US4.11
En tant qu'utilisateur, je sais toujours clairement que je parle à une IA (badge visible)
must
2 pts
US4.12
En tant qu'utilisateur, je peux sauvegarder un itinéraire généré sur mon profil
must
3 pts
US4.13
En tant que système, les requêtes IA sont traitées de façon asynchrone (pas de timeout UI)
must
5 pts
REST API /ai
Endpoints API
POST
/ai/chat
Message texte → réponse copilote (stream SSE)
🔒 auth
POST
/ai/itinerary
Génération itinéraire complet (body: destinations, days, budget, style)
🔒 auth
POST
/ai/itinerary/:id/modify
Modifier un jour ou une activité de l'itinéraire
🔒 auth
POST
/ai/itinerary/:id/save
Sauvegarder l'itinéraire sur le profil
🔒 auth
GET
/ai/conversations
Liste des conversations IA (paginé)
🔒 auth
GET
/ai/conversations/:id
Historique d'une conversation
🔒 auth
DELETE
/ai/conversations/:id
Supprimer une conversation
🔒 auth
GET
/ai/profile
Voir le jumeau digital (ai_profile)
🔒 auth
PATCH
/ai/profile
Modifier manuellement le jumeau digital
🔒 auth
POST
/ai/food-reco
Recommandations food contextuelles (lat/lng + préférences)
🔒 auth
POST
/ai/safety-briefing
Résumé sécurité IA d'une destination
🔒 auth
Critères d'acceptation
✓Premier token de réponse affiché en < 1.5s (streaming)
✓Génération itinéraire 7j complète en < 20s (job async)
✓Le copilote répond en français si l'utilisateur écrit en français
✓Le jumeau digital est consulté à chaque requête (contexte injecté)
✓Badge "IA" visible en permanence pendant le chat
✓Cache hit : réponse identique en < 200ms sans appel OpenAI