Upload backend for Superkart (initial commit)

#2
by entorr - opened
Files changed (4) hide show
  1. Dockerfile +6 -14
  2. app.py +30 -0
  3. model.joblib +3 -0
  4. requirements.txt +4 -2
Dockerfile CHANGED
@@ -1,20 +1,12 @@
1
- FROM python:3.13.5-slim
2
 
3
  WORKDIR /app
4
 
5
- RUN apt-get update && apt-get install -y \
6
- build-essential \
7
- curl \
8
- git \
9
- && rm -rf /var/lib/apt/lists/*
10
 
11
- COPY requirements.txt ./
12
- COPY src/ ./src/
13
 
14
- RUN pip3 install -r requirements.txt
15
 
16
- EXPOSE 8501
17
-
18
- HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
19
-
20
- ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
1
+ FROM python:3.9-slim
2
 
3
  WORKDIR /app
4
 
5
+ COPY requirements.txt .
6
+ RUN pip install --no-cache-dir -r requirements.txt
 
 
 
7
 
8
+ COPY . .
 
9
 
10
+ EXPOSE 7860
11
 
12
+ CMD ["python", "app.py"]
 
 
 
 
app.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ from flask import Flask, request, jsonify
3
+ import joblib
4
+ import pandas as pd
5
+
6
+ app = Flask(__name__)
7
+
8
+ # Load the trained model
9
+ model = joblib.load('model.joblib')
10
+
11
+ @app.route('/predict', methods=['POST'])
12
+ def predict():
13
+ try:
14
+ data = request.get_json()
15
+ # Convert to pandas DataFrame
16
+ if isinstance(data, dict):
17
+ df = pd.DataFrame([data])
18
+ else:
19
+ df = pd.DataFrame(data)
20
+
21
+ # Make prediction
22
+ prediction = model.predict(df)
23
+
24
+ # Return result
25
+ return jsonify({'prediction': prediction.tolist()})
26
+ except Exception as e:
27
+ return jsonify({'error': str(e)})
28
+
29
+ if __name__ == '__main__':
30
+ app.run(host='0.0.0.0', port=7860)
model.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5f31600d3c9f8bfbfe6a09dd9a114a29b749b9c54d3b2d4012cec56fbbb8ede6
3
+ size 39747074
requirements.txt CHANGED
@@ -1,3 +1,5 @@
1
- altair
2
  pandas
3
- streamlit
 
 
 
1
+ flask
2
  pandas
3
+ scikit-learn
4
+ joblib
5
+ numpy