From 5350a90a8c24741d615de65ca4d4957ab506a1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Mureau?= Date: Wed, 9 Sep 2026 23:41:00 +0200 Subject: [PATCH] =?UTF-8?q?Pointer=20le=20d=C3=A9p=C3=B4t=20vers=20l'organ?= =?UTF-8?q?isation=20Forgejo=20openclassroom-ai.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cd.yml | 4 +- README.fr.md | 140 +++++++++++++++++++------------------- README.md | 142 +++++++++++++++++++-------------------- 3 files changed, 143 insertions(+), 143 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 29f5814..6e5ce78 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -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}" diff --git a/README.fr.md b/README.fr.md index 21bc308..69a096e 100644 --- a/README.fr.md +++ b/README.fr.md @@ -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** \ No newline at end of file diff --git a/README.md b/README.md index 06aac5e..93c9963 100644 --- a/README.md +++ b/README.md @@ -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** \ No newline at end of file