|
|
1 month ago | |
|---|---|---|
| ml-api | 1 month ago | |
| notebooks | 1 month ago | |
| shared | 1 month ago | |
| web | 1 month ago | |
| README.md | 1 month ago | |
| docker-compose.yml | 1 month ago |
Ce projet met en place une architecture moderne et modulaire pour le ML et le web :
Chaînage prévu: Notebook → API (FastAPI) → API (NestJS) → Interface Web (Next.js)
labML/
├─ web/ # Frontend Next.js (TS)
├─ app-api/ # Backend NestJS (TS)
├─ ml-api/ # Backend FastAPI (Python)
│ ├─ app/
│ │ ├─ main.py # API FastAPI (predict/train)
│ │ └─ train_iris.py # Script d'entraînement (Iris)
│ └─ environment.yml # Environnement conda/mamba
├─ notebooks/ # Notebooks Jupyter
├─ shared/
│ └─ models/ # Artefacts modèles (joblib, etc.)
├─ docker-compose.yml # Orchestration des services
└─ README.md
Générer les applications Next.js (web) et NestJS (app-api) si ce n'est pas déjà fait:
npx create-next-app@latest web --ts --eslint --src-dir --app --import-alias "@/*" --yesnpx @nestjs/cli@latest new app-api -p npmLancer l'ensemble des services:
docker compose up
Cela va démarrer:
Entraîner un modèle de démonstration (Iris) via notebook ou API:
ml-api/app/train_iris.py ou utilise son contenu.POST http://localhost:8000/trainTester la prédiction:
POST http://localhost:8000/predict avec le payload:
{
"sepal_length": 5.1,
"sepal_width": 3.5,
"petal_length": 1.4,
"petal_width": 0.2
}
Le frontend (web) aura une page de démo pour saisir ces valeurs et afficher la prédiction, en passant par NestJS.
Note: l'installation via mamba dans les conteneurs peut être longue la première fois.
APP_API_BASE_URL=http://localhost:4000ML_API_BASE_URL=http://ml-api:8000npm run dev/start:dev)./predict qui proxie vers FastAPI