|
|
from flask import Flask, request, jsonify |
|
|
from flask_cors import CORS |
|
|
import pandas as pd, joblib, os |
|
|
|
|
|
app = Flask(__name__) |
|
|
CORS(app) |
|
|
|
|
|
model = joblib.load("final_random_forest_model.pkl") |
|
|
|
|
|
FEATURE_COLUMNS = [ |
|
|
"Product_Weight", "Product_Allocated_Area", "Product_MRP", |
|
|
"Store_Establishment_Year", "Store_Size", "Store_Location_City_Type", |
|
|
"Store_Type", "Product_Prefix", "Product_Num", "Store_Age" |
|
|
] |
|
|
|
|
|
@app.route("/", methods=["GET"]) |
|
|
def home(): |
|
|
return "✅ SuperKart Forecast API is running" |
|
|
|
|
|
@app.route("/predict", methods=["POST"]) |
|
|
def predict(): |
|
|
data = request.get_json(force=True)["data"] |
|
|
df = pd.DataFrame(data)[FEATURE_COLUMNS] |
|
|
preds = model.predict(df) |
|
|
return jsonify({"predictions": preds.tolist()}) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
port = int(os.environ.get("PORT", 7860)) |
|
|
app.run(host="0.0.0.0", port=port) |
|
|
|