Muhammad-Arham's picture
Update app.py
156f4b2 verified
import gradio as gr
import pickle
import os
import sys
# Add debugging information
print("Current directory:", os.getcwd())
print("Files in directory:", os.listdir())
# Load the trained model and vectorizer with better error handling
try:
model_path = 'model.pkl'
vectorizer_path = 'vectorizer.pkl'
print(f"Loading model from {model_path}")
model = pickle.load(open(model_path, 'rb'))
print(f"Loading vectorizer from {vectorizer_path}")
vectorizer = pickle.load(open(vectorizer_path, 'rb'))
print("Model and vectorizer loaded successfully")
except Exception as e:
print(f"Error loading model or vectorizer: {e}")
print(f"Python version: {sys.version}")
print(f"System path: {sys.path}")
def predict_sms(message):
try:
transformed_text = vectorizer.transform([message])
prediction = model.predict(transformed_text)[0]
return "Spam" if prediction == 1 else "Not Spam"
except Exception as e:
error_msg = f"Error during prediction: {e}"
print(error_msg)
return error_msg
# Gradio Web Interface
iface = gr.Interface(
fn=predict_sms,
inputs=gr.Textbox(label="Enter SMS Message"),
outputs=gr.Label(),
title="SMS Spam Classifier",
description="Enter a message to check if it's spam or not."
)
# For Hugging Face deployment
iface.launch(server_name="0.0.0.0", server_port=7860)