import json import joblib import pandas as pd from flask import Flask, request, jsonify app = Flask("SuperKart Predictor") model = joblib.load("model.joblib") with open("model.json", "r") as f: model_info = json.load(f) @app.get("/") def home(): return app.response_class(response=json.dumps(model_info, indent=4), status=200, mimetype="application/json") @app.post("/v1/product") def predict(): product_data = request.get_json() sample = { "Product_Id": product_data["Product_Id"], "Product_Weight": product_data["Product_Weight"], "Product_Sugar_Content": product_data["Product_Sugar_Content"], "Product_Allocated_Area": product_data["Product_Allocated_Area"], "Product_Type": product_data["Product_Type"], "Product_MRP": product_data["Product_MRP"], "Store_Id": product_data["Store_Id"], "Store_Establishment_Year": product_data["Store_Establishment_Year"], "Store_Size": product_data["Store_Size"], "Store_Location_City_Type": product_data["Store_Location_City_Type"], "Store_Type": product_data["Store_Type"], } input_data = pd.DataFrame([sample]) prediction = model.predict(input_data).tolist()[0] return jsonify({"Prediction": prediction}) @app.post("/v1/productbatch") def predict_batch(): file = request.files["file"] input_data = pd.read_csv(file) predictions = model.predict(input_data).tolist() input_data["Prediction"] = predictions result = input_data.to_dict(orient="records") return jsonify(result) if __name__ == "__main__": app.run(debug=True)