Erlanggs/mbg-ai-api
CAPSTONE AI MBG (Makan Bergizi Gratis)
Deskripsi Project
Project AI ini digunakan untuk:
- Melakukan klasifikasi status gizi anak menggunakan model Deep Learning BMI.
- Menghitung kebutuhan kalori berdasarkan hasil klasifikasi.
- Memberikan rekomendasi paket menu MBG.
- Menyediakan REST API agar dapat diintegrasikan ke Front-End / Fullstack.
- Menyediakan chatbot edukasi gizi sebagai fitur sekunder.
=================================================
Struktur Folder Project
project/
├── app.py ├── Dockerfile ├── requirements.txt ├── README.md ├── notebook/ │ └── CapstoneAIMBG.ipynb ├── models/ │ ├── modelbmiclassification.keras │ ├── scaler.pkl │ ├── labelencoder.pkl │ └── featurecolumns.pkl ├── datasets/ │ ├── datasetbmi.csv │ └── tabelmenu.csv
=================================================
Penjelasan File
app.py
Backend utama FastAPI.
Berisi:
- endpoint prediksi BMI
- endpoint chatbot
- load model
- preprocessing
- integrasi generative AI
Endpoint:
GET /
GET /health
POST /predict
POST /chatbot
Dockerfile
Digunakan untuk menjalankan backend menggunakan container Docker.
Memudahkan deployment dan menyamakan environment antar device.
requirements.txt
Berisi dependency project.
Digunakan untuk install seluruh library.
Contoh:
pip install -r requirements.txt
Folder /models
modelbmiclassification.keras
Model utama Deep Learning.
Digunakan untuk:
- klasifikasi status gizi
- confidence prediction
scaler.pkl
Digunakan untuk scaling input.
WAJIB digunakan sebelum inference.
label_encoder.pkl
Digunakan untuk decode output model.
Label:
- Underweight
- Normal
- Overweight
- Obesity
feature_columns.pkl
Digunakan untuk menjaga urutan fitur inference.
Folder /datasets
dataset_bmi.csv
Dataset training model BMI.
tabel_menu.csv
Dataset recommendation engine.
Digunakan untuk memilih:
- karbohidrat
- lauk
- sayur
- buah
- susu
Notebook
CapstoneAIMBG.ipynb
Notebook utama project.
Berisi:
- preprocessing
- training model
- evaluasi
- nutrition engine
- recommendation engine
- REST API
- generative AI chatbot
=================================================
Cara Menjalankan Environment
Install dependency:
pip install -r requirements.txt
=================================================
Cara Load Model
import tensorflow as tf import joblib
model = tf.keras.models.loadmodel( "models/modelbmi_classification.keras" )
scaler = joblib.load( "models/scaler.pkl" )
encoder = joblib.load( "models/label_encoder.pkl" )
=================================================
Menjalankan API TANPA Docker
uvicorn app:app --host 0.0.0.0 --port 8000
Swagger:
http://localhost:8000/docs
=================================================
Menjalankan API DENGAN Docker
Build:
docker build -t ai-mbg .
Run:
docker run -p 8000:8000 ai-mbg
Swagger:
http://localhost:8000/docs
=================================================
Endpoint API
GET /
Digunakan untuk mengecek API berjalan.
GET /health
Digunakan untuk health checking backend.
POST /predict
Digunakan untuk:
- hitung BMI
- klasifikasi status gizi
Input:
age gender height weight
Output:
BMI status_gizi confidence
POST /chatbot
Digunakan untuk chatbot edukasi gizi.
Input:
BMI status_gizi target kalori menu rekomendasi pertanyaan user
Output:
jawaban chatbot
=================================================
Catatan Untuk Tim Fullstack
WAJIB:
- Gunakan scaler.pkl sebelum prediksi
- Gunakan feature_columns.pkl
- Jangan kirim data mentah langsung ke model
- Endpoint API lebih disarankan dibanding memanggil model langsung
- Gunakan endpoint /chatbot untuk fitur edukasi gizi
=================================================
Author
Capstone Project AI MBG
