import gradio as gr import pickle from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.preprocessing import LabelEncoder from xgboost import XGBClassifier # Load the model, label encoder, and vectorizer with open('xgb_model.pkl', 'rb') as model_file: model = pickle.load(model_file) with open('label_encoder.pkl', 'rb') as encoder_file: label_encoder = pickle.load(encoder_file) with open('vectorizer.pkl', 'rb') as vectorizer_file: vectorizer = pickle.load(vectorizer_file) # Define the prediction function def predict(text): try: text_vector = vectorizer.transform([text]) prediction = model.predict(text_vector) label = label_encoder.inverse_transform(prediction)[0] return {"prediction": label} except Exception as e: return {"error": str(e)} # Create the Gradio interface interface = gr.Interface( fn=predict, inputs=gr.Textbox(lines=2, placeholder="Enter a message..."), outputs="json", title="Spam Detector", description="Enter a message to determine if it is Phishing or Legitimate." ) # Launch the Gradio app interface.launch(share=True)