mhrahmad commited on
Commit
c670c8c
·
verified ·
1 Parent(s): 18e9951

Upload 4 files

Browse files
flask-iris-api/Dockerfile.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Gunakan image dasar Python versi 3.9
2
+ FROM python:3.9
3
+
4
+ # Buat folder kerja dalam container
5
+ WORKDIR /app
6
+
7
+ # Salin semua file dari folder lokal ke dalam container
8
+ COPY . /app
9
+
10
+ # Install semua dependensi dari requirements.txt
11
+ RUN pip install --no-cache-dir -r requirements.txt
12
+
13
+ # Buka port 7860 untuk API Flask
14
+ EXPOSE 7860
15
+
16
+ # Jalankan app.py saat container dijalankan
17
+ CMD ["python", "app.py"]
flask-iris-api/app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, request, jsonify
2
+ import joblib
3
+ import numpy as np
4
+
5
+ # Inisialisasi Flask app
6
+ app = Flask(__name__)
7
+
8
+ # Load model dari file model.pkl
9
+ model = joblib.load('model.pkl')
10
+
11
+ # Route utama hanya untuk cek apakah server hidup
12
+ @app.route('/')
13
+ def home():
14
+ return "Model API is running!"
15
+
16
+ # Route untuk prediksi
17
+ @app.route('/predict', methods=['POST'])
18
+ def predict():
19
+ try:
20
+ # Ambil data dari permintaan JSON
21
+ data = request.get_json()
22
+
23
+ # Ambil inputan fitur dan ubah ke array 2D
24
+ features = np.array(data['features']).reshape(1, -1)
25
+
26
+ # Lakukan prediksi
27
+ prediction = model.predict(features)
28
+
29
+ # Kirim hasil ke user
30
+ return jsonify({
31
+ 'prediction': prediction.tolist()
32
+ })
33
+
34
+ except Exception as e:
35
+ return jsonify({'error': str(e)})
36
+
37
+ # Jalankan Flask server
38
+ if __name__ == '__main__':
39
+ app.run(host='0.0.0.0', port=7860)
flask-iris-api/model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:81223f20e84ef83a3404587868b7292ec674c8848bf2d53c7162148d9a35c140
3
+ size 185841
flask-iris-api/requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ flask
2
+ scikit-learn
3
+ numpy
4
+ pandas
5
+ joblib