Vbhadiar commited on
Commit
5404586
·
verified ·
1 Parent(s): 3bf1a11

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. app.py +48 -0
  2. final_model.joblib +3 -0
  3. requirements.txt +7 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import joblib
3
+ import pandas as pd
4
+ import numpy as np
5
+ from pathlib import Path
6
+ from flask import Flask, request, jsonify
7
+ from flask_cors import CORS
8
+
9
+ app = Flask(__name__)
10
+ CORS(app)
11
+
12
+ # Define the model path
13
+ MODEL_PATH = Path("backend_files/final_model.joblib")
14
+
15
+ # Load the model once at startup
16
+ try:
17
+ if not MODEL_PATH.is_file():
18
+ raise FileNotFoundError(f"Model file not found at: {MODEL_PATH.resolve()}")
19
+ model = joblib.load(MODEL_PATH)
20
+ print("Model loaded successfully.")
21
+ except Exception as e:
22
+ print(f"Error loading model: {e}")
23
+ model = None
24
+
25
+ @app.get("/")
26
+ def health():
27
+ return {"status": "ok", "model_loaded": model is not None}, 200
28
+
29
+ @app.post("/predict")
30
+ def predict():
31
+ if model is None:
32
+ return jsonify({"error": "Model not loaded. Check startup logs."}), 500
33
+ try:
34
+ # Get data from POST request
35
+ data = request.get_json(force=True)
36
+ data_df = pd.DataFrame([data])
37
+
38
+ # Make prediction (in log scale) and inverse transform
39
+ prediction_log = model.predict(data_df)
40
+ prediction = np.expm1(prediction_log)
41
+
42
+ return jsonify({'prediction': prediction.tolist()})
43
+
44
+ except Exception as e:
45
+ return jsonify({'error': str(e)}), 400
46
+
47
+ if __name__ == '__main__':
48
+ app.run(host='0.0.0.0', port=7860)
final_model.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee7dc45fc8af07fdadf3312a26df344ea2a4f213be39cb48bb5a10629afd951f
3
+ size 54531050
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ numpy==2.0.2
2
+ pandas==2.2.2
3
+ scikit-learn==1.6.1
4
+ xgboost==2.1.0
5
+ joblib==1.4.2
6
+ Flask==3.0.3
7
+ flask-cors==4.0.1