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.py
untuk membuatmodel.pkl
- Deploy FastAPI app dengan file
app.py
- Pastikan port
8000
aktif
Gunakan curl_test.sh
atau langsung dengan curl
:
sh curl_test.sh
Atau 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)
fastapi
uvicorn
scikit-learn
pandas
pydantic
prometheus_client
Instalasi manual (jika tidak pakai Docker):
pip install -r requirements.txt
Jika ada pertanyaan terkait proyek ini, silakan hubungi melalui email atau buat issue di repositori ini.