Le backend sert de cœur d'orchestration pour l'analyse d'articles. Il fournit une API sécurisée (JWT) qui gère l'enchaînement des services d'Intelligence Artificielle : la Classification Zero-Shot (Hugging Face) pour la catégorisation, suivi de la Synthèse Contextuelle (Gemini API). Il est le garant de la sécurité, de la fiabilité et de la structure des données retournées au frontend
backend/
.
├── app/
│ ├── services/
│ │ ├── classification.py
│ │ ├── gemini_service.py
│ │ └── connection.py
│ ├── auth.py
│ ├── database.py
│ ├── config.py
│ ├── models.py
│ ├── schemas_output_gemini.py
│ └── main.py
├── tests/
│ ├── test_mocke_gemini.py
│ └── test_mock_hugging_face.py
├── .env
├── .gitignore
├── requirements.txt
├── Dockerfile
└── README.md
- Cloner le dépôt GitHub :
git clone https://github.com/elhidarinouhayla/Plateforme-d-Orchestration-IA-Backend.git
cd project
- Créer un environnement virtuel :
- Linux / Mac :
python -m venv venv
source venv/bin/activate
- Windows :
python -m venv venv
venv\Scripts\activate
- Installer les dépendances :
pip install -r requirements.txt
- Lancer l’API en mode développement :
uvicorn main:app --reload
-
L’API sera accessible à l’adresse : http://127.0.0.1:8000
-
Documentation interactive Swagger : http://127.0.0.1:8000/docs
Astuce : Le paramètre --reload permet à l’API de se mettre à jour automatiquement à chaque modification du code, très pratique pour le développement.
# Secrets de l'API (à remplacer par de vraies valeurs)
SECRET_KEY=votre_clef_secrete_jwt
ALGORITHM=HS256
# Configuration Gemini
GEMINI_API_KEY=votre_clef_api_gemini
# Configuration Hugging Face
HF_TOKEN=votre_token_huggingface
# Configuration Base de Données PostgreSQL
USER=user
PASSWORD=password
DATABASE=analyzer_db
HOST=localhost
PORT=5432
Méthode | Endpoint | Description |
------------------------------------------------------------------------------------------|
POST | /register | Enregistre un nouvel utilisateur (stockage du mot de passe hashe).|
------------------------------------------------------------------------------------------|
POST | /login | Authentifie l'utilisateur et renvoie un token JWT. |
Cet endpoint est protégé par JWT. Il déclenche l'orchestration complète de l'analyse IA.
-
Header requis: Authorization: Bearer
-
Body JSON (pour analyse):
{
"text": "L'équipe a dominé le match grâce à une possession de balle remarquable et un pressing constant"
}- Reponce JSON :
{
"category": "Sport",
"score": 0.985,
"summary": "L'équipe a dominé le match ",
"tone": "Positif"
}Les tests sont cruciaux pour garantir la fiabilité du chaînage des services d'IA. Ils incluent un mocking complet des appels externes à Hugging Face et Gemini pour des tests rapides et isolés.
- Mock Hugging Face
- Mock Gemini
pytest
Le Dockerfile permet de construire une image Docker pour le backend FastAPI.
Il fait les étapes suivantes :
-
Utilise Python 3.11 comme base
-
Définit le dossier de travail /app
-
Copie le fichier requirements.txt et installe les dépendances Python
-
Copie tout le code du backend dans l’image
-
Expose le port 8000 pour l’API
-
Lance le serveur Uvicorn à l’intérieur du conteneur
=> Cela permet de déployer facilement l’API sur n’importe quelle machine sans config supplémentaire