3 KiB
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
-
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
- Le modèle le plus performant est enregistré dans MLflow sous un nom fixe (
-
Prétraitement du texte
- Le texte envoyé par l’utilisateur est nettoyé, tokenisé, lemmatisé et transformé en vecteurs (embeddings).
-
Prédiction
- Le modèle LSTM (chargé depuis MLflow) effectue l’inférence.
- Le résultat (
positifounégatif) est renvoyé en réponse JSON.
-
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/