|
|
|
|
|
import os |
|
|
import joblib |
|
|
from flask import Flask, request, jsonify |
|
|
import pandas as pd |
|
|
import numpy as np |
|
|
import warnings |
|
|
warnings.filterwarnings("ignore") |
|
|
|
|
|
|
|
|
MODEL_PATH = "/content/Backend_files/SuperKart_Sales_Prediction_Model.joblib" |
|
|
|
|
|
|
|
|
try: |
|
|
model_pipeline = joblib.load(MODEL_PATH) |
|
|
print(f"Model loaded successfully from {MODEL_PATH}") |
|
|
except Exception as e: |
|
|
model_pipeline = None |
|
|
print(f"Error loading model: {e}") |
|
|
|
|
|
|
|
|
app = Flask(__name__) |
|
|
|
|
|
|
|
|
@app.route("/", methods=["GET"]) |
|
|
def home(): |
|
|
return "Welcome to the SuperKart Sales Prediction App!" |
|
|
|
|
|
|
|
|
@app.route("/predict", methods=["POST"]) |
|
|
def predict(): |
|
|
if model_pipeline is None: |
|
|
return jsonify({"error": "Model not loaded"}), 500 |
|
|
|
|
|
try: |
|
|
|
|
|
data = request.get_json() |
|
|
if not data: |
|
|
return jsonify({"error": "No data provided"}), 400 |
|
|
|
|
|
|
|
|
input_df = pd.DataFrame([data]) |
|
|
|
|
|
prediction = model_pipeline.predict(input_df) |
|
|
return jsonify({"prediction": prediction.tolist()}) |
|
|
|
|
|
except Exception as e: |
|
|
return jsonify({"error": f'Error during prediction: {e}'}), 500 |
|
|
|
|
|
if __name__ == "__main__": |
|
|
port = int(os.environ.get("PORT", 5000)) |
|
|
app.run(host="0.0.0.0", port=5000, debug=True) |
|
|
|