import os import pickle import numpy as np from flask import Flask, request, jsonify app = Flask(__name__) # Load model MODEL_PATH = "predictive_model_smote.pkl" with open(MODEL_PATH, "rb") as f: model = pickle.load(f) @app.route("/") def home(): return {"message": "Predictive Maintenance API is running"} @app.route("/predict", methods=["POST"]) def predict(): try: data = request.json # Expected input features in correct order features = [ data["Air temperature [K]"], data["Process temperature [K]"], data["Rotational speed [rpm]"], data["Torque [Nm]"], data["Tool wear [min]"] ] features_array = np.array([features]) prediction = model.predict(features_array)[0] return jsonify({ "prediction": int(prediction) }) except Exception as e: return jsonify({"error": str(e)}) if __name__ == "__main__": port = int(os.environ.get("PORT", 7860)) app.run(host="0.0.0.0", port=port)