Frank-65/Prediction_Scoring_Credit
0
--- 🤗 Configuration du Space Hugging Face ---
⚙️ API de Prédiction du 'Scoring Credit'
Ce Space héberge une API FastAPI conçue pour prédire la probabilité de défaut d'un client.
L'API est accessible via l'URL : https://frank-65-prediction-scoring-credit.hf.space
Il est automatiquement mis à jour via un pipeline CI/CD GitHub Actions.
🔑 Configuration des Secrets
Pour déployer cette API sur un Space Hugging Face, les Secrets suivants sont enregistrés dans le Repository secrets de GitHub
- `HF_TOKEN` : Clé associée au Space Huffing Face.
- `DATABASE_URL` : L'URL de connexion vers la base de données PostgreSQL (production) qui héberge les logs.
Pour que cette API fonctionne, l'URL de connexion est également enregistrée dans une variable secrete DATABASE_URL du Settings de ce Space Hugging Face.
📈 Endpoints de l'API
Une fois que le serveur uvicorn est en fonctionnement, l'API est accessible :
- Documentation (Swagger) :
/docs - Interface pour interagir avec l'API.
- Interface intégré :
/gradio - Accès à une interface utilisateur conviviale pour une démonstration.
- Prédiction pour un client existant :
/predict/existing_client - Effectue une prédiction avec l'ID d'un client et renvoie les résultats.
- Input (JSON)\ {\ 'skidcurr': 100002,\ }
- Output (JSON)\ {\ 'defaut': "Oui",\ 'predictiondefaut': 1,\ 'probabilitedefaut': 0.7956850853982567,\ 'seuildecision': 0.4753,\ 'enregistrementdatabase': "✅ ID client 100002"\ }
- Retourne une erreur si le client n'est pas recensé dans la base de données.
- Output (JSON)\ {\ 'detail': "Client non trouvé"\ }
- Prédiction pour un nouveau client :
/predict/new_client - Effectue une prédiction avec les données d'un client (format JSON) qui n'est pas recensé et renvoie les résultats.
- Input (JSON)\ {\ 'SKIDCURR': 200000,\ 'CODEGENDER': "M",\ "NAMECONTRACTTYPE": "Cash loans",\ 'NAMEEDUCATIONTYPE': "Secondary / secondary special",\ 'NAMEFAMILYSTATUS': "Single / not married",\ 'NAMEINCOMETYPE': "Working",\ 'AMTINCOMETOTAL': 202500.0,\ 'AMTCREDIT': 406597.5,\ 'AMTANNUITY': 24700.5,\ 'AMTGOODSPRICE': 351000.0,\ 'DAYSBIRTH': -9464.0,\ 'DAYSEMPLOYED': -637.0,\ 'DAYSREGISTRATION': -3648.0,\ 'DAYSIDPUBLISH': -2120.0,\ 'DAYSLASTPHONECHANGE': -1134.0,\ 'REGIONRATINGCLIENT': 2.0,\ 'REGIONRATINGCLIENTWCITY': 2.0,\ 'REGIONPOPULATIONRELATIVE': 0.018798828125,\ "EXTSOURCE1": 0.262949,\ "EXTSOURCE2": 0.622070,\ "EXTSOURCE_3": 0.364013\ }
- Output (JSON)\ {\ 'defaut': "Non",\ 'predictiondefaut': 0,\ 'probabilitedefaut': 0.2637699362872459,\ 'seuildecision': 0.4753,\ 'enregistrementdatabase': "✅ ID client 200000"\ }
- Retourne une erreur si le client est recensé dans la base de données.
- Output (JSON)\ {\ 'detail': "Client déjà recensé dans la base de données"\ }
