SuperKart-App / app.py
dhani10's picture
Update app.py
a1e6a03 verified
from flask import Flask, request, jsonify
import joblib
import pandas as pd
import os
import datetime
app = Flask(__name__)
# Load model
model = joblib.load('random_forest_best_model.pkl')
@app.route('/')
def home():
return "SuperKart Sales Forecasting API"
@app.route('/predict', methods=['POST'])
def predict():
try:
# Parse incoming JSON
data = request.get_json()
# Convert to DataFrame
input_df = pd.DataFrame([data])
# Calculate Store_Age
current_year = datetime.datetime.now().year
if 'Store_Establishment_Year' in input_df.columns:
input_df['Store_Age'] = current_year - input_df['Store_Establishment_Year']
input_df.drop('Store_Establishment_Year', axis=1, inplace=True)
else:
return jsonify({"error": "Missing 'Store_Establishment_Year'"}), 400
# Predict
prediction = model.predict(input_df)
return jsonify({"prediction": round(prediction[0], 2)})
except Exception as e:
return jsonify({"error": str(e)}), 400
if __name__ == '__main__':
#port = int(os.environ.get('PORT', 5000))
port = int(os.environ.get('PORT', 7860))
app.run(host='0.0.0.0', port=port)