Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plateforme-d-Orchestration-IA-Backend

Objectif du projet

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

Structure du projet


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            




Installation

  1. Cloner le dépôt GitHub :
    git clone https://github.com/elhidarinouhayla/Plateforme-d-Orchestration-IA-Backend.git

    cd project
  1. Créer un environnement virtuel :
  • Linux / Mac :
    python -m venv venv

    source venv/bin/activate
  • Windows :
    python -m venv venv

    venv\Scripts\activate
  1. Installer les dépendances :
    pip install -r requirements.txt
  1. Lancer l’API en mode développement :
    uvicorn main:app --reload

Astuce : Le paramètre --reload permet à l’API de se mettre à jour automatiquement à chaque modification du code, très pratique pour le développement.

Configuration

# 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

Endpoint:/register et /login

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.                | 

Endpoint Principal : /analyze

Cet endpoint est protégé par JWT. Il déclenche l'orchestration complète de l'analyse IA.

POST /analyze

  • 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"
}

Tests Unitaires

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

Commande pour lancer les tests :

pytest

Dockerfile

Le Dockerfile permet de construire une image Docker pour le backend FastAPI.

Il fait les étapes suivantes :

  1. Utilise Python 3.11 comme base

  2. Définit le dossier de travail /app

  3. Copie le fichier requirements.txt et installe les dépendances Python

  4. Copie tout le code du backend dans l’image

  5. Expose le port 8000 pour l’API

  6. 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

About

AI-powered article analysis engine orchestrating Zero-Shot Classification (Hugging Face) and Contextual Synthesis (Gemini). Features a secure JWT-authenticated API and structured data management.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages