Skip to content

Latest commit

 

History

112 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plateforme de scoring crédit

Monorepo réunissant l'API Flask de scoring et le dashboard Streamlit. Le projet a été réorganisé pour Railway après une première version déployée sur Heroku.

Architecture

.
├── api/          API, artefact du modèle, profils synthétiques et tests
├── dashboard/    interface Streamlit et client HTTP
├── training/     règles de réentraînement et de promotion d'un modèle
└── .github/      intégration continue commune

L'API charge une seule fois le modèle et génère de façon déterministe 200 profils entièrement synthétiques à partir des statistiques du scaler. Aucun enregistrement client source n'est embarqué. L'API ne renvoie jamais le DataFrame complet : les histogrammes sont agrégés et les nuages de points sont limités. Le dashboard ne contient aucune dépendance de machine learning et met en cache les lectures pendant cinq minutes.

Lancement local

API, dans un premier terminal :

cd api
python -m venv .venv
python -m pip install -r requirements-dev.txt
pytest
python app.py

Dashboard, dans un second terminal :

cd dashboard
python -m venv .venv
python -m pip install -r requirements-dev.txt
pytest
streamlit run app.py

Le dashboard utilise http://127.0.0.1:8000 par défaut. La variable API_URL permet de changer cette adresse.

Déploiement Railway

Créer un projet Railway et connecter ce même dépôt GitHub à deux services :

Service api

  • Root Directory : /api
  • Railway Config File : /api/railway.toml
  • variable PORT=8000
  • variable WEB_CONCURRENCY=1
  • aucun domaine public nécessaire

Service dashboard

  • Root Directory : /dashboard
  • Railway Config File : /dashboard/railway.toml
  • domaine public Railway activé
  • variable API_URL=http://${{api.RAILWAY_PRIVATE_DOMAIN}}:8000

Une variable partagée API_KEY peut être ajoutée aux deux services. Elle reste optionnelle si l'API est exclusivement accessible sur le réseau privé Railway.

Dans les réglages GitHub des deux services, activer Wait for CI. Railway attendra alors la réussite des tests API et dashboard avant le déploiement.

Le déploiement initial utilise les branches générées agent/railway-api et agent/railway-dashboard, afin que chaque service voie son sous-dossier à la racine. Après fusion dans main, le workflow sync-railway-branches.yml maintient ces deux branches automatiquement et chaque push validé déclenche le service correspondant.

Modèle et interprétation

L'artefact actuel est une pipeline StandardScaler + LogisticRegression scikit-learn 1.5.2 comportant 100 variables. Son empreinte SHA-256 et le seuil de décision sont versionnés dans api/artifacts/metadata.json.

Le score produit n'est pas encore calibré sur la population générale. Il doit être interprété relativement au seuil métier de 30 %, et non comme une fréquence réelle de défaut. Les conditions requises avant une promotion en production sont documentées dans training/README.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages