md-be / app.py
bhumitps's picture
Upload folder using huggingface_hub
75febfd verified
import os
from flask import Flask, request, jsonify
import joblib
import pandas as pd
# Create a Flask application instance
app = Flask(__name__)
# Define model path
MODEL_DIR = "model_artifacts"
MODEL_FILENAME = "best_sales_forecast_model.joblib"
MODEL_PATH = os.path.join(MODEL_DIR, MODEL_FILENAME)
# Load model at startup
try:
model = joblib.load(MODEL_PATH)
print(" Model loaded successfully!")
except Exception as e:
print(f" Error loading model: {e}")
model = None
# Health check route
@app.route("/", methods=["GET"])
def index():
return jsonify({"status": "Backend is running!"})
# Prediction route
@app.route("/predict", methods=["POST"])
def predict():
if model is None:
return jsonify({"error": "Model not loaded"}), 500
try:
# Get request JSON
data = request.get_json(force=True)
if not data:
return jsonify({"error": "No input data provided"}), 400
# Convert to DataFrame
df = pd.DataFrame(data)
# Drop ID column if present, as it's not used in prediction
if "Product_Id" in df.columns:
df = df.drop("Product_Id", axis=1)
# Predict
predictions = model.predict(df)
return jsonify({"predictions": predictions.tolist()})
except Exception as e:
return jsonify({"error": str(e)}), 400
# Entry point
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)