Spaces:
Runtime error
Runtime error
File size: 1,458 Bytes
333ca01 aeab453 333ca01 aba87c4 333ca01 3d1adcb 333ca01 0156d82 3d1adcb 0156d82 aba87c4 3d1adcb 333ca01 3d1adcb 333ca01 3d1adcb aba87c4 333ca01 e4cf043 3d1adcb 333ca01 3d1adcb 333ca01 9e06b93 3d1adcb 9e06b93 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | from flask import Flask, request, jsonify
from flask_cors import CORS
import joblib
import pandas as pd
import os
app = Flask(__name__)
CORS(app) # Enable CORS for all routes
model = None
preprocessor = None
@app.route('/health', methods=['GET'])
def health():
return jsonify({"status": "ok", "message": "Backend is running"}), 200
def load_model():
global model, preprocessor
if model is None or preprocessor is None:
print("📦 Loading model and preprocessor...")
model = joblib.load('boston_housing_model.pkl')
preprocessor = joblib.load('preprocessor.pkl')
print("✅ Model and preprocessor loaded successfully.")
@app.route('/predict', methods=['POST'])
def predict():
try:
load_model() # Load model only when needed
data = request.json
if not data:
return jsonify({'error': 'No input data provided'}), 400
df = pd.DataFrame(data, index=[0])
processed_data = preprocessor.transform(df)
prediction = model.predict(processed_data)
print(f"📨 Received payload: {data}")
print(f"🔮 Prediction: {prediction[0]}")
return jsonify({'prediction': float(prediction[0])})
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
port = int(os.environ.get("PORT", 5000))
print(f"🚀 Starting backend server on port {port}")
app.run(host='0.0.0.0', port=port)
|