# Déploiement de l'API - Projet Air Paradis Ce dossier contient le code et la configuration nécessaires pour déployer l'API de prédiction de sentiments. ## 🎯 Objectif Déployer une API REST qui permet de: - prédire le sentiment d’un tweet (positif ou négatif) en s’appuyant sur un modèle LSTM entraîné à partir d’embeddings (Word2Vec ou GloVe). - reporter les erreurs de prédictions L’API utilise le modèle le plus performant, enregistré sur MLflow, et le met à disposition via FastAPI. --- ## 📦 Architecture Globale ``` ┌──────────────────────────────┐ │ Utilisateur final (UI) │ │ (interface Streamlit) │ └────────────┬─────────────────┘ │ [Appel HTTP à /predict] │ ┌────────────▼─────────────┐ │ API FastAPI │ │ (serveur lancé via │ │ Uvicorn) │ └────────────┬─────────────┘ │ Chargement du modèle depuis MLflow │ Prétraitement du tweet │ Prédiction (inférence) │ Retour du sentiment (JSON) ``` --- ## 🧪 Fonctionnement de l’API 1. **Chargement du modèle** - Le modèle le plus performant est enregistré dans MLflow sous un nom fixe (`SentimentAnalysisLSTM`) et une étape (stage) `Production`. - L’API récupère ce modèle au démarrage grâce à une URI stable : ``` models:/SentimentAnalysisLSTM/Production ``` 2. **Prétraitement du texte** - Le texte envoyé par l’utilisateur est nettoyé, tokenisé, lemmatisé et transformé en vecteurs (embeddings). 3. **Prédiction** - Le modèle LSTM (chargé depuis MLflow) effectue l’inférence. - Le résultat (`positif` ou `négatif`) est renvoyé en réponse JSON. 4. **Interface utilisateur (optionnelle)** - Une interface Streamlit permet d’interagir avec l’API de manière visuelle. --- ## 🐳 Déploiement avec Docker Un `Dockerfile` est fourni pour faciliter le déploiement de l’API sur n’importe quel hôte compatible Docker (NAS, cloud, etc.). Ce docker devra être déploigné sur DockerHub à chaque versionning validé (voir section CI/CD ci-dessous) Dans un souci de souveraineté des données, le déploiement sera préférentiellement déployé sur un NAS équippé d'un processeur Intel N100 (peu énergivore, mais probablement suffisant pour un calcul d'inférence LSTM). --- ## 🔁 Intégration continue / Déploiement Continu Un pipeline GitHub Actions (CI/CD) est prévu pour : - **Lancer automatiquement les tests unitaires** à chaque push sur le dépôt GitHub. - **Garantir la stabilité de l’API** avant tout déploiement (NAS ou cloud). - **Mettre à jour le Dockerfile** et le pousser sur **DockerHub**. Les tests unitaires seront définis dans `./deployment/api/tests/`