MoinulwithAI's picture
Create app.py
8908602 verified
raw
history blame
1.08 kB
import gradio as gr
import numpy as np
import joblib
from pytorch_tabnet.tab_model import TabNetClassifier
# Load model and preprocessing tools
model = TabNetClassifier()
model.load_model("tabnet_model.zip")
scaler = joblib.load("scaler.save")
encoder = joblib.load("encoder.save")
# Features used in the model
features = [f"{trait}{i}" for trait in ["EXT", "EST", "AGR", "CSN", "OPN"] for i in range(1, 11)]
def predict_personality(*inputs):
X = np.array(inputs).reshape(1, -1).astype(np.float32)
X_scaled = scaler.transform(X)
y_pred = model.predict(X_scaled)
label = encoder.inverse_transform(y_pred)[0]
return f"Predicted Personality Type: {label}"
# Create Gradio interface
inputs = [gr.Slider(1, 5, step=0.1, label=f) for f in features]
demo = gr.Interface(
fn=predict_personality,
inputs=inputs,
outputs=gr.Text(label="Personality Prediction"),
title="Personality Type Classifier (Introvert vs. Extrovert)",
description="This model predicts if a person is Introvert or Extrovert based on their IPIP-FFM scores."
)
demo.launch()