File size: 3,084 Bytes
dc0b62f
eb9cdfc
 
 
 
dc0b62f
 
 
 
7ce787b
eb9cdfc
99d8fd6
 
eb9cdfc
 
 
 
99d8fd6
 
 
eb9cdfc
 
 
 
99d8fd6
 
 
 
 
bd5690e
 
b9e854f
 
 
 
99d8fd6
 
 
bd5690e
99d8fd6
 
 
 
 
 
7ce787b
99d8fd6
 
b9e854f
99d8fd6
 
 
 
 
 
 
 
c928309
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
---
title: Prêt à Dépenser - API de Prédiction
emoji: 💰
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
---

# API pour la prédiction du risque de défaillance de paiement d'un Crédit - Prêt à Dépenser

Cette API permet de prédire à l'aide d'un modèle de Machine Learning (Histogramme Gradient Boosting) 
si un client risque d'être en défaut de paiement lors de l'analyse de sa demande de prêt.

## Endpoints disponibles

- `GET /health` - Vérification de l'état de l'API
- `GET /columns` - Liste des colonnes attendues par le modèle
- `POST /predict` - Prédiction pour un client avec les 10 variables les plus importantes
- `POST /predict/file` - Prédiction en lot avec toutes les variables via fichier CSV

## Documentation interactive

Accédez à la documentation Swagger : `/docs`

## Accessibilité de l'API

l'API (FastAPI) et son interface graphique (Streamlit) sont déployées sur Hugging Face Spaces (public) et accessibles via les liens suivants.

- **Interface graphique** : https://huggingface.co/spaces/CedM/oc_mlops_projet_2_dashboard
- **Ligne de commande (Linux, MacOS, Windows)** :\
curl -X GET "https://cedm-oc-mlops-projet-2.hf.space/health"  
curl -X GET "https://cedm-oc-mlops-projet-2.hf.space/columns"  
curl -X POST "https://cedm-oc-mlops-projet-2.hf.space/predict" -H "Content-Type: application/json" -d '{"features": {"EXT_SOURCE_3": 0.1393757800997895, "EXT_SOURCE_2": 0.2629485927471776, "EXT_SOURCE_1": 0.0830369673913225, "DAYS_EMPLOYED": -637.0, "PAYMENT_RATE": 0.0607492667810303, "INSTAL_DPD_MEAN": 0.0, "PREV_CNT_PAYMENT_MEAN": 24.0, "AMT_ANNUITY": 24700.5, "CODE_GENDER": 0, "PREV_NAME_PRODUCT_TYPE_walk-in_MEAN": 0.0}}'  
curl -X POST "https://cedm-oc-mlops-projet-2.hf.space/predict/file" -F "file=@./train_data_sp2_subsample_1.csv"  

## Accessibilité des données pour tester l'API et Logs

- Des données de test sont disponibles dans un Hugging Face Dataset (public) : https://huggingface.co/datasets/CedM/oc_mlops_projet_2/tree/main  
Pour faire une demande en lot, prenez par exemple le fichier : `train_data_sp2_subsample_1.csv`

- Les logs de l'API (latence, erreurs) sont accessibles au même endroit (api_log.jsonl) ainsi que l'historique des demandes/réponses de l'API (data_io.csv) pour suivre les prédictions et la dérive des données.

## Structure du projet

Le projet est hébergé sur Framagit.org (public - instance GitLab) et est poussé automatiquement sur Hugging Face Spaces via GitLab CI sous forme de conteneurs Docker lors d'un PUSH sur la branche `main` de GitLab :
https://framagit.org/dapa/oc_mlops_projet_2

![title](4_Docs/structure_projet.png)

## Détails de l'interface graphique (Dashboard Streamlit)

Le dashboard permet de :

- Faire une demande de prédiction individuelle basée sur les 10 variables les plus importantes pour la prédiction de défaut de paiement
- Faire une demande en lot via un fichier CSV
- Visualiser la dérive des données (Data drift - pour savoir si il est nécessaire de réentraîner le modèle)
- Visualiser la latence et les erreurs de l'API