| | import os |
| | from flask import Flask, request, jsonify |
| | import joblib |
| | import pandas as pd |
| |
|
| | |
| | app = Flask(__name__) |
| |
|
| | |
| | MODEL_DIR = "model_artifacts" |
| | MODEL_FILENAME = "best_sales_forecast_model.joblib" |
| | MODEL_PATH = os.path.join(MODEL_DIR, MODEL_FILENAME) |
| |
|
| | |
| | try: |
| | model = joblib.load(MODEL_PATH) |
| | print(" Model loaded successfully!") |
| | except Exception as e: |
| | print(f" Error loading model: {e}") |
| | model = None |
| |
|
| | |
| | @app.route("/", methods=["GET"]) |
| | def index(): |
| | return jsonify({"status": "Backend is running!"}) |
| |
|
| | |
| | @app.route("/predict", methods=["POST"]) |
| | def predict(): |
| | if model is None: |
| | return jsonify({"error": "Model not loaded"}), 500 |
| |
|
| | try: |
| | |
| | data = request.get_json(force=True) |
| | if not data: |
| | return jsonify({"error": "No input data provided"}), 400 |
| |
|
| | |
| | df = pd.DataFrame(data) |
| |
|
| | |
| | if "Product_Id" in df.columns: |
| | df = df.drop("Product_Id", axis=1) |
| |
|
| | |
| | predictions = model.predict(df) |
| |
|
| | return jsonify({"predictions": predictions.tolist()}) |
| |
|
| | except Exception as e: |
| | return jsonify({"error": str(e)}), 400 |
| |
|
| | |
| | if __name__ == "__main__": |
| | app.run(host="0.0.0.0", port=5000) |
| |
|