import os from flask import Flask, request, jsonify import joblib import numpy as np import pandas as pd # Load model model = joblib.load("best_rf_model.pkl") app = Flask(__name__) @app.route("/") def home(): return jsonify({"message": "Random Forest Prediction API is running!"}) @app.route("/predict", methods=["POST"]) def predict(): try: data = request.get_json() # Handle both dict (single row) and list of dicts if isinstance(data, dict): df = pd.DataFrame([data]) # wrap single row else: df = pd.DataFrame(data) predictions = model.predict(df) return jsonify({"predictions": predictions.tolist()}) except Exception as e: return jsonify({"error": str(e)}) if __name__ == "__main__": port = int(os.environ.get("PORT", 7860)) # Default Hugging Face port app.run(host="0.0.0.0", port=port)