vinsensius13 commited on
Commit
164c46c
·
1 Parent(s): 5c0f8ba

fix: add app logic and Docker config

Browse files
Files changed (3) hide show
  1. Dockerfile +3 -4
  2. app.py +11 -9
  3. requirements.txt +2 -2
Dockerfile CHANGED
@@ -1,11 +1,10 @@
1
- FROM python:3.11-slim
2
 
3
  WORKDIR /app
4
 
5
- COPY . .
6
-
7
  RUN pip install -r requirements.txt
8
 
9
- EXPOSE 7860
10
 
11
  CMD ["python", "app.py"]
 
1
+ FROM python:3.10
2
 
3
  WORKDIR /app
4
 
5
+ COPY requirements.txt .
 
6
  RUN pip install -r requirements.txt
7
 
8
+ COPY . .
9
 
10
  CMD ["python", "app.py"]
app.py CHANGED
@@ -1,20 +1,22 @@
1
  from flask import Flask, request, jsonify
2
  import pickle
3
- import numpy as np
4
- import joblib
5
 
6
  app = Flask(__name__)
7
 
8
  # Load model
9
- model = joblib.load("models/model.pkl")
 
10
 
11
  @app.route("/")
12
- def home():
13
- return "API Iris Flower Ready!"
14
 
15
  @app.route("/predict", methods=["POST"])
16
  def predict():
17
- data = request.json
18
- features = np.array(data["features"]).reshape(1, -1)
19
- prediction = model.predict(features)[0]
20
- return jsonify({"prediction": prediction})
 
 
 
 
1
  from flask import Flask, request, jsonify
2
  import pickle
 
 
3
 
4
  app = Flask(__name__)
5
 
6
  # Load model
7
+ with open("models/model.pkl", "rb") as f:
8
+ model = pickle.load(f)
9
 
10
  @app.route("/")
11
+ def index():
12
+ return "Iris Classifier API is running!"
13
 
14
  @app.route("/predict", methods=["POST"])
15
  def predict():
16
+ data = request.get_json()
17
+ features = [data["sepal_length"], data["sepal_width"], data["petal_length"], data["petal_width"]]
18
+ prediction = model.predict([features])
19
+ return jsonify({"prediction": prediction[0]})
20
+
21
+ if __name__ == "__main__":
22
+ app.run(host="0.0.0.0", port=7860)
requirements.txt CHANGED
@@ -1,6 +1,6 @@
1
  flask
2
  numpy
3
- scikit-learn
4
  joblib
5
- flask-cors
6
  gunicorn
 
1
  flask
2
  numpy
3
+ scikit-learn==1.6.1
4
  joblib
5
+ flask
6
  gunicorn