API ini memprediksi kualitas wine berdasarkan fitur-fitur kimiawi menggunakan model machine learning yang telah dilatih.
- 🔮 Prediksi kualitas wine (skor 0–10)
- ⚙️ Model ML berbasis
RandomForestClassifier - 🧪 Dibangun dengan FastAPI
- 🐳 Dikemas dalam Docker container
- ☁️ Deployment menggunakan Railway
- 📈 Monitoring dengan Prometheus & Grafana (di Play With Docker)
.
├── app.py
├── train_model.py
├── predict.py
├── model.pkl
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── prometheus.yml
├── curl_test.sh
├── README.md
└── WineQT.csv
- Clone repositori ke Railway
- Jalankan
train_model.pyuntuk membuatmodel.pkl - Deploy FastAPI app dengan file
app.py - Pastikan port
8000aktif
Gunakan curl_test.sh atau langsung dengan curl:
sh curl_test.shAtau manual:
curl -X POST http://localhost:8000/predict \
-H "Content-Type: application/json" \
-d '{{
"fixed_acidity": 7.4,
"volatile_acidity": 0.7,
"citric_acid": 0,
"residual_sugar": 1.9,
"chlorides": 0.076,
"free_sulfur_dioxide": 11.0,
"total_sulfur_dioxide": 34.0,
"density": 0.9978,
"pH": 3.51,
"sulphates": 0.56,
"alcohol": 9.4
}}'POST /predict
{{
"fixed_acidity": 7.4,
"volatile_acidity": 0.7,
"citric_acid": 0,
"residual_sugar": 1.9,
"chlorides": 0.076,
"free_sulfur_dioxide": 11.0,
"total_sulfur_dioxide": 34.0,
"density": 0.9978,
"pH": 3.51,
"sulphates": 0.56,
"alcohol": 9.4
}}{{
"prediction": 5
}}- Buka https://labs.play-with-docker.com/
- Buat 3 terminal instance: FastAPI app, Prometheus, dan Grafana
- Jalankan container dengan
docker-compose up - Akses Prometheus di
http://localhost:9090, Grafana dihttp://localhost:3000
Metode monitoring dilakukan dengan:
- Prometheus untuk scraping metrik dari endpoint
/metrics - Grafana untuk visualisasi
- Metrik:
api_request_count_total– Jumlah permintaan APIapi_request_latency_seconds_bucket– Latensi request API
- Model: Random Forest Classifier
- Dataset: Wine Quality (Red Wine)
- Fitur input: 11 fitur kimia (acidity, sugar, alcohol, dll)
- Output: Skor kualitas wine (0–10)
fastapiuvicornscikit-learnpandaspydanticprometheus_client
Instalasi manual (jika tidak pakai Docker):
pip install -r requirements.txtJika ada pertanyaan terkait proyek ini, silakan hubungi melalui email atau buat issue di repositori ini.