--- title: "Deploy MPLOPS 2" emoji: "🚀" colorFrom: "blue" colorTo: "green" sdk: "docker" sdk_version: "latest" app_file: "app.py" pinned: false --- 📖 PrĂ©sentation du projet Cette API fournit un service d’infĂ©rence permettant d’évaluer la solvabilitĂ© d’un client dans le cadre d’une demande de prĂȘt. Elle s’intĂšgre dans un pipeline MLOps complet incluant versioning des modĂšles, monitoring, conteneurisation et automatisation CI/CD. 🧭 FonctionnalitĂ©s principales 📊 Lister les modĂšles ML disponibles (/models) đŸ€– PrĂ©dire la solvabilitĂ© d’un client (/predict) đŸ—„ïž Enregistrer automatiquement les donnĂ©es d’entrĂ©e et de sortie en base 📚 Documentation OpenAPI/Swagger gĂ©nĂ©rĂ©e automatiquement 🐳 DĂ©ploiement Docker-Ready --- ## 📩 PrĂ©requis - Python 3.12+ - [Poetry](gestion des dĂ©pendances) - Docker (PostgreSQL local via Compose) --- ## Installation ### 1. Cloner le dĂ©pĂŽt ~~~bash git https://github.com/marintosti12/MLOPS2-banque.git cd MLOPS2-banque ~~~ ### 2. CrĂ©er un environnement virtuel avec Poetry ~~~bash poetry install ~~~ ### 3. Configurer l’environnement CrĂ©e un fichier **.env** Ă  la racine : ~~~env # PostgreSQL DATABASE_URL=postgresql+psycopg2://futu:futu_pass@localhost:5432/futurisys # Hugging Face HF_TOKEN= Token Hugging Face HF_REPO_ID= Repo Hugging Face ~~~ ### 4. Base de donnĂ©es / Grafana ~~~bash sudo docker compose up -d ~~~ đŸ—„ïž Base de donnĂ©es ~~~mermaid classDiagram direction LR class MLModel { +UUID id +String name +Text description +DateTime created_at +Boolean is_active } class MLInput { +UUID id +DateTime created_at +String model_name +JSONB raw_data +JSONB features } class MLOutput { +UUID id +UUID input_id +String request_id +String model_name +String model_version +DateTime created_at +Integer latency_ms +String prediction +Float prob +Float proba_defaut +Float proba_solvable +Float threshold +JSONB classes +JSONB meta +String error } class ProfilingLog { +UUID id +DateTime created_at +String endpoint +String method +String model_name +Float total_time_ms +Integer num_predictions +Float time_preprocessing_ms +Float time_inference_ms +Float time_database_ms +Float time_serialization_ms +JSON top_functions +Integer ncalls_total +Integer ncalls_pandas +Integer ncalls_database +Float cpu_percent +Float memory_mb +Text full_profile } %% Relations MLInput "1" --> "0..*" MLOutput : input_id ~~~ ### 5. Lancer Migrations ~~~bash poetry run alembic upgrade head ~~~ ### 7. Lancer l’API ~~~bash poetry run uvicorn src.main:app --reload ~~~ ### 8. Huggings Face Pour gĂ©nĂ©rer les artefacts, exĂ©cuter les notebooks de machine learning. Sur Hugging Face (Models), stocker les artefacts du modĂšle dans le dĂ©pĂŽt du Space (models/) et nommer le fichier exactement comme le nom du modĂšle en base de donnĂ©es. ### đŸ§č QualitĂ© de code **Lint :** ~~~bash poetry run ruff check . ~~~ ### đŸ§Ș Tests & Couvertur **Lancer les tests :** ```bash poetry run pytest --maxfail=1 --disable-warnings -q