An empathetic AI voice assistant utilizing RAG and localized LLMs (Darija/French) to support Moroccan women with breast cancer information. POC featuring FastAPI, React, and local GPU inference.
# Nour Chatbot - Assistant Vocal pour le Cancer du Sein 🎗️
**Nour** est une assistante virtuelle empathique et vocale conçue pour accompagner les femmes marocaines atteintes du cancer du sein. Elle agit comme une "grande sœur" bienveillante (*khti*), fournissant des informations médicales fiables et un soutien émotionnel en **Darija** et en **Français**.
## 🌟 Fonctionnalités Clés
- **🗣️ Interface Voice-First** : Conçue pour l'accessibilité, notamment pour les utilisatrices analphabètes ou fatiguées. L'utilisatrice parle, et Nour répond oralement.
- **🇲🇦 Support Bilingue Adapté** :
- **Entrée** : Comprend le Darija, le Français et l'Arabe.
- **Sortie Visuelle** : Texte en **Français** (pour la clarté médicale et la lecture).
- **Sortie Audio** : Voix en **Darija** (pour la proximité émotionnelle et la compréhension).
- **🧠Intelligence Artificielle Avancée** :
- **RAG (Retrieval Augmented Generation)** : Utilise une base de connaissances médicale vérifiée pour répondre aux questions.
- **Détection d'Émotion** : Adapte son ton si l'utilisatrice exprime de la peur ou de la détresse.
- **🛡️ Sécurité & Éthique** :
- Ne fait **jamais** de diagnostic médical.
- Ne prescrit **jamais** de médicaments.
- Redirige vers les urgences en cas de crise critique.
## 🏗️ Architecture Technique
L'application suit une architecture client-serveur moderne :
### Frontend (Client)
- **Framework** : React 19 + Vite
- **Styling** : TailwindCSS (Design responsive et épuré)
- **Composants Clés** :
- `AudioRecorder.jsx` : Gestion de l'enregistrement vocal et visualisation audio.
- `App.jsx` : Orchestration de l'interface de chat.
### Backend (Serveur)
- **Framework** : FastAPI (Python)
- **Services** :
- **STT (Speech-to-Text)** : Transcription de l'audio utilisateur (Gemini/OpenAI).
- **LLM (Logic)** : Google Gemini (Modèle `gemini-2.5-flash`) pour la génération de réponse et l'analyse d'intention.
- **RAG** : ChromaDB pour le stockage vectoriel de la base de connaissances (`knowledge.js …