RajendrakumarPachaiappan's picture
Upload folder using huggingface_hub
f68f50c verified
from flask import Flask, request, jsonify
import joblib
import pandas as pd
# Initialize Flask app
app = Flask(__name__)
# Load the trained final model
try:
model = joblib.load("extraa_learn_project.pkl")
print("Model loaded successfully.")
except Exception as e:
print(f"Error loading model: {e}")
model = None
# Define expected features
FEATURES = [
"time_spent_on_website",
"first_interaction",
"profile_completed",
"age",
"page_views_per_visit",
"last_activity"
]
@app.route("/", methods=["GET"])
def home():
return jsonify({
"message": "Backend is running!",
"status": "ok",
"required_features": FEATURES
})
@app.route("/predict", methods=["POST"])
def predict():
try:
data = request.get_json()
# Ensure all required features are present
missing = [f for f in FEATURES if f not in data]
if missing:
return jsonify({"error": f"Missing features: {missing}"}), 400
# Convert input into DataFrame
df = pd.DataFrame([data], columns=FEATURES)
# Make prediction
prediction = model.predict(df)[0]
proba = model.predict_proba(df).max()
return jsonify({
"prediction": int(prediction),
"confidence": float(proba)
})
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8501)