Pointer le dépôt vers l'organisation Forgejo openclassroom-ai.

This commit is contained in:
Grégoire Mureau 2026-09-09 23:41:00 +02:00
parent ddbade7f24
commit 5350a90a8c
3 changed files with 143 additions and 143 deletions

View file

@ -50,7 +50,7 @@ jobs:
run: |
set -eu
REGISTRY="${GITHUB_SERVER_URL#https://}"
IMAGE="${REGISTRY}/grgmro/oc-p07-sentiment-api"
IMAGE="${REGISTRY}/openclassroom-ai/oc-p07-sentiment-api"
SHORT_SHA="$(echo "${GITHUB_SHA}" | cut -c1-12)"
# Client docker statique sans plugin buildx → builder classique.
export DOCKER_BUILDKIT=0
@ -75,7 +75,7 @@ jobs:
fi
echo "${DOCKER_HUB_TOKEN}" | docker login docker.io -u "${DOCKER_HUB_USER}" --password-stdin
SHORT_SHA="$(echo "${GITHUB_SHA}" | cut -c1-12)"
SRC="${GITHUB_SERVER_URL#https://}/grgmro/oc-p07-sentiment-api"
SRC="${GITHUB_SERVER_URL#https://}/openclassroom-ai/oc-p07-sentiment-api"
DST="docker.io/${DOCKER_HUB_USER}/sentiment_api"
docker tag "${SRC}:latest" "${DST}:latest"
docker tag "${SRC}:latest" "${DST}:${SHORT_SHA}"

View file

@ -1,71 +1,71 @@
# Projet Air Paradis – Analyse de sentiments
📘 Ce projet est également disponible en [anglais 🇬🇧](./README.md)
Ce dépôt contient les notebooks et le code source du projet d'analyse de sentiments sur des tweets, réalisé dans le cadre du programme OpenClassrooms **"Air Paradis"**.
**Source de vérité** : [Forgejo](https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api) (auto-hébergé).
```bash
git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git
git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git
```
---
## Contexte métier
L'objectif est de prédire si un tweet (ou une courte expression écrite) est perçu comme **positif ou négatif**, dans le contexte d'une compagnie aérienne.
Le projet repose sur le jeu de données public **Sentiment140**.
---
## Description du projet
Le projet vise à développer un système complet d'analyse de sentiments, comprenant :
- Une analyse exploratoire des données textuelles,
- Une comparaison rigoureuse de 10+ modèles de classification (classiques ML, LSTM + word embeddings, DistilBERT),
- Le déploiement d'une API REST FastAPI exposant le meilleur modèle avancé (LSTM + Word2Vec),
- La mise en place d'un pipeline MLOps complet : MLFlow, CI/CD (GitHub Actions), monitoring,
- Un hébergement local sur serveur NAS pour garantir la souveraineté des données.
📖 **Pour des informations détaillées sur les expérimentations menées et les résultats obtenus, consultez [docs/blog.fr.md](./docs/blog.fr.md).**
---
## Structure du dépôt
- `notebooks/` : notebooks d'analyse exploratoire et de modélisation,
- `deployment/` : code de l'API FastAPI, tests unitaires, Dockerfile et configuration déploiement,
- `docs/` : documentation détaillée (blog.fr.md), diagrammes, captures d'écran,
- `presentation/` : support de présentation du projet (PDF),
- `.github/workflows/` : CI (Forgejo Actions sur le runner homelab ; même YAML côté GitHub),
- `fetch-data.sh` : où récupérer Sentiment140 (dataset **hors** git).
---
## Entraînement des modèles
Les phases d'entraînement ont principalement été réalisées sur **Google Colab**, afin de bénéficier de ressources GPU nécessaires aux modèles de deep learning.
---
## Utilisation
Les notebooks détaillent les étapes d'analyse et d'entraînement.
L'API est disponible dans le dossier `deployment/api` avec interface Streamlit de test.
Pour tester l'API en production : https://api.gregoiremureau.com/ml/sentiment/
---
## Remarques
- Les fichiers `requirements.txt` dans `notebooks/` proviennent des environnements Google Colab et peuvent contenir des dépendances peu optimisées pour un usage local.
- Le fichier `.env`, exclu du dépôt, contient les variables d'environnement nécessaires (configuration MLFlow, MinIO, alerting).
- Données d'entraînement : `./fetch-data.sh` (Sentiment140 n'est **pas** dans git).
---
# Projet Air Paradis – Analyse de sentiments
📘 Ce projet est également disponible en [anglais 🇬🇧](./README.md)
Ce dépôt contient les notebooks et le code source du projet d'analyse de sentiments sur des tweets, réalisé dans le cadre du programme OpenClassrooms **"Air Paradis"**.
**Source de vérité** : [Forgejo](https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api) (auto-hébergé).
```bash
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api.git
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api.git
```
---
## Contexte métier
L'objectif est de prédire si un tweet (ou une courte expression écrite) est perçu comme **positif ou négatif**, dans le contexte d'une compagnie aérienne.
Le projet repose sur le jeu de données public **Sentiment140**.
---
## Description du projet
Le projet vise à développer un système complet d'analyse de sentiments, comprenant :
- Une analyse exploratoire des données textuelles,
- Une comparaison rigoureuse de 10+ modèles de classification (classiques ML, LSTM + word embeddings, DistilBERT),
- Le déploiement d'une API REST FastAPI exposant le meilleur modèle avancé (LSTM + Word2Vec),
- La mise en place d'un pipeline MLOps complet : MLFlow, CI/CD (GitHub Actions), monitoring,
- Un hébergement local sur serveur NAS pour garantir la souveraineté des données.
📖 **Pour des informations détaillées sur les expérimentations menées et les résultats obtenus, consultez [docs/blog.fr.md](./docs/blog.fr.md).**
---
## Structure du dépôt
- `notebooks/` : notebooks d'analyse exploratoire et de modélisation,
- `deployment/` : code de l'API FastAPI, tests unitaires, Dockerfile et configuration déploiement,
- `docs/` : documentation détaillée (blog.fr.md), diagrammes, captures d'écran,
- `presentation/` : support de présentation du projet (PDF),
- `.github/workflows/` : CI (Forgejo Actions sur le runner homelab ; même YAML côté GitHub),
- `fetch-data.sh` : où récupérer Sentiment140 (dataset **hors** git).
---
## Entraînement des modèles
Les phases d'entraînement ont principalement été réalisées sur **Google Colab**, afin de bénéficier de ressources GPU nécessaires aux modèles de deep learning.
---
## Utilisation
Les notebooks détaillent les étapes d'analyse et d'entraînement.
L'API est disponible dans le dossier `deployment/api` avec interface Streamlit de test.
Pour tester l'API en production : https://api.gregoiremureau.com/ml/sentiment/
---
## Remarques
- Les fichiers `requirements.txt` dans `notebooks/` proviennent des environnements Google Colab et peuvent contenir des dépendances peu optimisées pour un usage local.
- Le fichier `.env`, exclu du dépôt, contient les variables d'environnement nécessaires (configuration MLFlow, MinIO, alerting).
- Données d'entraînement : `./fetch-data.sh` (Sentiment140 n'est **pas** dans git).
---
**Projet réalisé dans le cadre du parcours "Data Scientist – Projet 7" d'OpenClassrooms**

142
README.md
View file

@ -1,72 +1,72 @@
# Air Paradis Project – Sentiment Analysis
📘 This project is also available in [French 🇫🇷](./README.fr.md)
This repository contains the notebooks and source code for the sentiment analysis project on tweets, conducted as part of the OpenClassrooms **"Air Paradis"** program.
**Source of truth** : [Forgejo](https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api) (self-hosted). GitHub, when mirrored, is the public shop window.
```bash
git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git
# HTTPS (Cloudflare, fine for clone) :
git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git
```
---
## Business Context
The objective is to predict whether a tweet (or short written expression) is perceived as **positive or negative**, in the context of an airline company.
The project is based on the public **Sentiment140** dataset.
---
## Project Description
The project aims to develop a complete sentiment analysis system, including:
- Exploratory analysis of textual data,
- Rigorous comparison of 10+ classification models (classical ML, LSTM + word embeddings, DistilBERT),
- Deployment of a FastAPI REST API exposing the best advanced model (LSTM + Word2Vec),
- Implementation of a complete MLOps pipeline: MLFlow, CI/CD (GitHub Actions), monitoring,
- Local hosting on NAS server to ensure data sovereignty.
📖 **For detailed information on experiments conducted and results obtained, see [docs/blog.md](./docs/blog.md).**
---
## Repository Structure
- `notebooks/`: exploratory analysis and modeling notebooks,
- `deployment/`: FastAPI API code, unit tests, Dockerfile and deployment configuration,
- `docs/`: detailed documentation (blog.md), diagrams, screenshots,
- `presentation/`: project presentation slides (PDF),
- `.github/workflows/`: CI (Forgejo Actions on the homelab runner; same YAML on GitHub),
- `fetch-data.sh`: where to get Sentiment140 (dataset **not** in git).
---
## Model Training
Training phases were primarily conducted on **Google Colab** to leverage GPU resources required for deep learning models.
---
## Usage
Notebooks detail the analysis and training steps.
The API is available in the `deployment/api` folder with Streamlit testing interface.
To test the production API: https://api.gregoiremureau.com/ml/sentiment/
---
## Notes
- The `requirements.txt` files in `notebooks/` come from Google Colab environments and may contain dependencies not optimized for local use.
- The `.env` file, excluded from the repository, contains necessary environment variables (MLFlow, MinIO, alerting configuration).
- Training data: run `./fetch-data.sh` (Sentiment140 is **not** stored in git).
---
# Air Paradis Project – Sentiment Analysis
📘 This project is also available in [French 🇫🇷](./README.fr.md)
This repository contains the notebooks and source code for the sentiment analysis project on tweets, conducted as part of the OpenClassrooms **"Air Paradis"** program.
**Source of truth** : [Forgejo](https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api) (self-hosted). GitHub, when mirrored, is the public shop window.
```bash
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api.git
# HTTPS (Cloudflare, fine for clone) :
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api.git
```
---
## Business Context
The objective is to predict whether a tweet (or short written expression) is perceived as **positive or negative**, in the context of an airline company.
The project is based on the public **Sentiment140** dataset.
---
## Project Description
The project aims to develop a complete sentiment analysis system, including:
- Exploratory analysis of textual data,
- Rigorous comparison of 10+ classification models (classical ML, LSTM + word embeddings, DistilBERT),
- Deployment of a FastAPI REST API exposing the best advanced model (LSTM + Word2Vec),
- Implementation of a complete MLOps pipeline: MLFlow, CI/CD (GitHub Actions), monitoring,
- Local hosting on NAS server to ensure data sovereignty.
📖 **For detailed information on experiments conducted and results obtained, see [docs/blog.md](./docs/blog.md).**
---
## Repository Structure
- `notebooks/`: exploratory analysis and modeling notebooks,
- `deployment/`: FastAPI API code, unit tests, Dockerfile and deployment configuration,
- `docs/`: detailed documentation (blog.md), diagrams, screenshots,
- `presentation/`: project presentation slides (PDF),
- `.github/workflows/`: CI (Forgejo Actions on the homelab runner; same YAML on GitHub),
- `fetch-data.sh`: where to get Sentiment140 (dataset **not** in git).
---
## Model Training
Training phases were primarily conducted on **Google Colab** to leverage GPU resources required for deep learning models.
---
## Usage
Notebooks detail the analysis and training steps.
The API is available in the `deployment/api` folder with Streamlit testing interface.
To test the production API: https://api.gregoiremureau.com/ml/sentiment/
---
## Notes
- The `requirements.txt` files in `notebooks/` come from Google Colab environments and may contain dependencies not optimized for local use.
- The `.env` file, excluded from the repository, contains necessary environment variables (MLFlow, MinIO, alerting configuration).
- Training data: run `./fetch-data.sh` (Sentiment140 is **not** stored in git).
---
**Project completed as part of OpenClassrooms "Data Scientist – Project 7" program**