Hackathon-SID-2025/Atypie_Friendly_chatbot

Aider les enseignants à créer des supports de cours et des examens adaptés aux étudiants en situation de handicap

Python

2

2 commits

updated Aug 1, 2026

See the code

README

Agent conversationnel Atypie-Friendly

Status Event License

React Vite FastAPI Python Supabase Docker Mistral AI

Ce projet a été réalisé dans le cadre du Hackathon SID 2026 (Inter-promo) du Master Sciences et Ingénierie des Données. Il regroupe des étudiants des 3 années du Master (L3, M1 et M2).

Infinity Blau est un agent conversationnel avec Interface utilisateur (chatbot) conçu pour le programme national Atypie-Friendly, une initiative visant à améliorer l'inclusion des étudiants présentant des Troubles du Neuro-Développement (TND) dans l'enseignement supérieur.

💙 Le nom "Infinity Blau" est un hommage au nom de notre équipe.


Table des matières


Objectif du projet

Fournir aux enseignants et aux équipes pédagogiques un outil fiable pour :

  • Obtenir des conseils pédagogiques adaptés aux TND (TSA, TDAH, troubles DYS...).
  • Accéder rapidement aux ressources du programme Atypie-Friendly.
  • Comprendre les adaptations possibles pour leurs cours et examens.

Fonctionnalités Clés

  • RAG (Retrieval-Augmented Generation) : Le chatbot ne répond pas au hasard, il se base sur une base de connaissances vérifiée issue du programme Atypie-Friendly.
  • Réponses en Streaming : Affichage progressif de la réponse pour une expérience utilisateur fluide.
  • Sources Citées : Chaque réponse indique les documents utilisés pour générer le conseil.
  • Gestion de l'historique : Sauvegarde des conversations via Supabase.
  • Interface Adaptative : Mode clair/sombre et design responsive (Mobile & Desktop).

Architecture

L'architecture suit un flux de données précis pour garantir la pertinence des réponses (Pattern RAG). Le Backend agit comme un orchestrateur entre la base de connaissances et l'IA.

graph TD;
    %% Noeuds
    User((Utilisateur))
    Front[Frontend React]
    Back[Backend FastAPI]
    Vector[(FAISS Vector DB)]
    LLM[Mistral AI]

    %% Flux Standard
    User -->|1. Pose une question| Front
    Front -->|2. Envoie la requête| Back
    
    subgraph RAG [Moteur RAG]
        Back -->|3. Recherche sémantique| Vector
        Vector -->|4. Renvoie les documents similaires à la question| Back
        
        %% Flèches allongées (---) pour aérer l'affichage des titres 5 et 6
        Back --->|5. Prompt: Question + Contexte| LLM
        LLM --->|6. Génère la réponse| Back
    end

    Back -->|7. Stream la réponse| Front
    Front -->|8. Affiche le message| User

    %% Styles
    style Back fill:#f9f,stroke:#333,stroke-width:2px
    style Vector fill:#bbf,stroke:#333,stroke-width:2px
    style LLM fill:#bfb,stroke:#333,stroke-width:2px

Organisation

Chef de projet : Paulin Kodjovi
Encadrants : Philippe Berthet & Ronan Sicre


Équipe Analyse Équipe Dev-Chatbot Équipe Interface

Installation et Démarrage

Pour faciliter le déploiement, nous proposons deux méthodes pour le Backend : via Docker (recommandé pour la stabilité) ou l'installation Standard (pour le développement).

1. Pré-requis

  • Node.js (v18+)
  • Docker Desktop (ou Python 3.11+)
  • Une clé API Mistral AI
  • Un projet Supabase configuré

2. Backend (API & IA)

🐳 Option 1 : Backend via Docker (Recommandé)

Cette méthode garantit que l'application tourne dans un environnement isolé avec les bonnes versions de dépendances.

1. Préparer la configuration Créez un fichier nommé .env dans le dossier chatbot/backend_fastapi et ajoutez votre clé API :

MISTRAL_API_KEY=votre_clé_api_ici

2. Construire et Lancer Ouvrez un terminal dans chatbot/backend_fastapi et lancez :

# 1. Construire l'image (peut prendre quelques minutes la première fois)
docker build -t atypie-backend .

# 2. Lancer le conteneur (en chargeant le fichier .env)
docker run -p 8000:8000 --env-file .env atypie-backend

Le serveur sera accessible sur http://localhost:8000

🐍 Option 2 : Backend via Python Standard (Windows)

Utilisez cette méthode si vous souhaitez modifier le code ou si vous ne pouvez pas utiliser Docker.

1. Configuration de la clé API Avant tout, vous devez créer le fichier de configuration.

  1. Allez dans le dossier chatbot/backend_fastapi.
  2. Créez un fichier nommé .env.
  3. Ouvrez-le et collez votre clé dedans :
MISTRAL_API_KEY=votre_clé_api_ici

2. Installation Ouvrez votre terminal (PowerShell) dans le dossier chatbot/backend_fastapi :

# 1. Créer l'environnement virtuel
python -m venv venv

# 2. Activer l'environnement
.\venv\Scripts\activate

# 3. Installer les dépendances
pip install -r requirements.txt

3. Lancement Toujours dans le même terminal (avec (venv) affiché au début de la ligne) :

# Lancer le serveur
uvicorn app_api_v2:app --reload

Le serveur sera accessible sur http://localhost:8000

3. Frontend (Interface)

Une fois le backend opérationnel (via Docker ou Python), vous devez lancer l'interface utilisateur.

1. Installation des dépendances Ouvrez un nouveau terminal (ne fermez pas celui du backend) et naviguez vers le dossier frontend :

cd chatbot/frontend
npm install

2. Configuration Supabase L'interface a besoin de se connecter à votre projet Supabase pour l'authentification et l'historique.

  1. Créez un fichier nommé .env à la racine du dossier chatbot/chatbot.
  2. Ajoutez vos clés Supabase (disponibles dans Project Settings > API) :
VITE_SUPABASE_URL=votre_url_supabase_ici
VITE_SUPABASE_ANON_KEY=votre_clé_anon_public_ici

3. Démarrage Lancez le serveur de développement :

npm run dev

L'application est maintenant accessible dans votre navigateur (généralement sur http://localhost:5173).

Evaluation de modèles

Afin de garantir que l'agent conversationnel réponde de manière factuelle sans "halluciner" et cite correctement ses sources, un framework d'évaluation rigoureux a été mis en œuvre. Basé sur une approche LLM-as-a-judge, la pipeline mesure la précision, le raisonnement et la qualité des documents récupérés (RAG).

Consultez la documentation complète de notre architecture d'évaluation dans le dossier /Analyses.

Hackathon-SID-2025/Atypie_Friendly_chatbot

Aider les enseignants à créer des supports de cours et des examens adaptés aux étudiants en situation de handicap

Python

2

2 commits

updated Aug 1, 2026

See the code

README

Agent conversationnel Atypie-Friendly

Status Event License

React Vite FastAPI Python Supabase Docker Mistral AI

Ce projet a été réalisé dans le cadre du Hackathon SID 2026 (Inter-promo) du Master Sciences et Ingénierie des Données. Il regroupe des étudiants des 3 années du Master (L3, M1 et M2).

Infinity Blau est un agent conversationnel avec Interface utilisateur (chatbot) conçu pour le programme national Atypie-Friendly, une initiative visant à améliorer l'inclusion des étudiants présentant des Troubles du Neuro-Développement (TND) dans l'enseignement supérieur.

💙 Le nom "Infinity Blau" est un hommage au nom de notre équipe.


Table des matières


Objectif du projet

Fournir aux enseignants et aux équipes pédagogiques un outil fiable pour :

  • Obtenir des conseils pédagogiques adaptés aux TND (TSA, TDAH, troubles DYS...).
  • Accéder rapidement aux ressources du programme Atypie-Friendly.
  • Comprendre les adaptations possibles pour leurs cours et examens.

Fonctionnalités Clés

  • RAG (Retrieval-Augmented Generation) : Le chatbot ne répond pas au hasard, il se base sur une base de connaissances vérifiée issue du programme Atypie-Friendly.
  • Réponses en Streaming : Affichage progressif de la réponse pour une expérience utilisateur fluide.
  • Sources Citées : Chaque réponse indique les documents utilisés pour générer le conseil.
  • Gestion de l'historique : Sauvegarde des conversations via Supabase.
  • Interface Adaptative : Mode clair/sombre et design responsive (Mobile & Desktop).

Architecture

L'architecture suit un flux de données précis pour garantir la pertinence des réponses (Pattern RAG). Le Backend agit comme un orchestrateur entre la base de connaissances et l'IA.

graph TD;
    %% Noeuds
    User((Utilisateur))
    Front[Frontend React]
    Back[Backend FastAPI]
    Vector[(FAISS Vector DB)]
    LLM[Mistral AI]

    %% Flux Standard
    User -->|1. Pose une question| Front
    Front -->|2. Envoie la requête| Back
    
    subgraph RAG [Moteur RAG]
        Back -->|3. Recherche sémantique| Vector
        Vector -->|4. Renvoie les documents similaires à la question| Back
        
        %% Flèches allongées (---) pour aérer l'affichage des titres 5 et 6
        Back --->|5. Prompt: Question + Contexte| LLM
        LLM --->|6. Génère la réponse| Back
    end

    Back -->|7. Stream la réponse| Front
    Front -->|8. Affiche le message| User

    %% Styles
    style Back fill:#f9f,stroke:#333,stroke-width:2px
    style Vector fill:#bbf,stroke:#333,stroke-width:2px
    style LLM fill:#bfb,stroke:#333,stroke-width:2px

Organisation

Chef de projet : Paulin Kodjovi
Encadrants : Philippe Berthet & Ronan Sicre


Équipe Analyse Équipe Dev-Chatbot Équipe Interface

Installation et Démarrage

Pour faciliter le déploiement, nous proposons deux méthodes pour le Backend : via Docker (recommandé pour la stabilité) ou l'installation Standard (pour le développement).

1. Pré-requis

  • Node.js (v18+)
  • Docker Desktop (ou Python 3.11+)
  • Une clé API Mistral AI
  • Un projet Supabase configuré

2. Backend (API & IA)

🐳 Option 1 : Backend via Docker (Recommandé)

Cette méthode garantit que l'application tourne dans un environnement isolé avec les bonnes versions de dépendances.

1. Préparer la configuration Créez un fichier nommé .env dans le dossier chatbot/backend_fastapi et ajoutez votre clé API :

MISTRAL_API_KEY=votre_clé_api_ici

2. Construire et Lancer Ouvrez un terminal dans chatbot/backend_fastapi et lancez :

# 1. Construire l'image (peut prendre quelques minutes la première fois)
docker build -t atypie-backend .

# 2. Lancer le conteneur (en chargeant le fichier .env)
docker run -p 8000:8000 --env-file .env atypie-backend

Le serveur sera accessible sur http://localhost:8000

🐍 Option 2 : Backend via Python Standard (Windows)

Utilisez cette méthode si vous souhaitez modifier le code ou si vous ne pouvez pas utiliser Docker.

1. Configuration de la clé API Avant tout, vous devez créer le fichier de configuration.

  1. Allez dans le dossier chatbot/backend_fastapi.
  2. Créez un fichier nommé .env.
  3. Ouvrez-le et collez votre clé dedans :
MISTRAL_API_KEY=votre_clé_api_ici

2. Installation Ouvrez votre terminal (PowerShell) dans le dossier chatbot/backend_fastapi :

# 1. Créer l'environnement virtuel
python -m venv venv

# 2. Activer l'environnement
.\venv\Scripts\activate

# 3. Installer les dépendances
pip install -r requirements.txt

3. Lancement Toujours dans le même terminal (avec (venv) affiché au début de la ligne) :

# Lancer le serveur
uvicorn app_api_v2:app --reload

Le serveur sera accessible sur http://localhost:8000

3. Frontend (Interface)

Une fois le backend opérationnel (via Docker ou Python), vous devez lancer l'interface utilisateur.

1. Installation des dépendances Ouvrez un nouveau terminal (ne fermez pas celui du backend) et naviguez vers le dossier frontend :

cd chatbot/frontend
npm install

2. Configuration Supabase L'interface a besoin de se connecter à votre projet Supabase pour l'authentification et l'historique.

  1. Créez un fichier nommé .env à la racine du dossier chatbot/chatbot.
  2. Ajoutez vos clés Supabase (disponibles dans Project Settings > API) :
VITE_SUPABASE_URL=votre_url_supabase_ici
VITE_SUPABASE_ANON_KEY=votre_clé_anon_public_ici

3. Démarrage Lancez le serveur de développement :

npm run dev

L'application est maintenant accessible dans votre navigateur (généralement sur http://localhost:5173).

Evaluation de modèles

Afin de garantir que l'agent conversationnel réponde de manière factuelle sans "halluciner" et cite correctement ses sources, un framework d'évaluation rigoureux a été mis en œuvre. Basé sur une approche LLM-as-a-judge, la pipeline mesure la précision, le raisonnement et la qualité des documents récupérés (RAG).

Consultez la documentation complète de notre architecture d'évaluation dans le dossier /Analyses.