kypli/lsd-sapi-api
0
Backend Klasifikasi Penyakit Sapi (FastAPI)
Repositori ini berisi backend API untuk sistem klasifikasi penyakit sapi menggunakan model MobileNetV3Large yang dilatih dengan Keras/TensorFlow. API ini dideploy ke Hugging Face Spaces menggunakan Docker SDK.
Fitur Utama
- Memuat Model Secara Aman: Backend akan mencoba memuat model Keras (.keras). Jika tidak ada, backend akan memeriksa model TFLite (.tflite) sebagai alternatif.
- Toleran Terhadap Model yang Belum Diunggah: Jika model belum ada, API tetap berjalan (agar tidak mengalami kegagalan boot di Hugging Face Spaces), tetapi endpoint
/predictakan merespons dengan instruksi untuk mengunggah model. - Preprocessing Presisi: Melakukan resizing dengan teknik padding (
resize_with_pad224x224) menggunakan TensorFlow sehingga identik dengan pipeline evaluasi model saat training. - CORS Diaktifkan: Siap diakses oleh frontend eksternal (seperti yang dideploy di Vercel).
Cara Deploy ke Hugging Face Spaces
- Buat Space baru di Hugging Face (https://huggingface.co/new-space).
- Tentukan nama Space Anda (misalnya
lsd-sapi-api). - Pilih SDK Docker (jangan gunakan Streamlit/Gradio).
- Pilih template Docker Blank.
- Setelah Space dibuat, unggah berkas berikut ke repositori Space tersebut:
Dockerfilemain.pyrequirements.txtclass_names.json- Jalankan training notebook di Google Colab. Setelah selesai, unduh hasil ZIP, lalu unggah berkas berikut ke Space:
cattle_disease_mobilenetv3.keras(ataucattle_disease_mobilenetv3.tflite)- Hugging Face akan membangun Docker container secara otomatis. Setelah statusnya menjadi Running, API Anda siap digunakan!
Endpoint API Utama
- GET `/`: Informasi status API, kesiapan model, dan kelas klasifikasi.
- GET `/health`: Pemeriksaan kesehatan server.
- POST `/predict`: Menerima input gambar (multipart form-data dengan nama field
file) dan mengembalikan hasil probabilitas ketiga kelas.
Catatan Praktikum: Backend ini ditujukan untuk penyaringan awal dan tidak menggantikan diagnosis dokter hewan resmi.
