|
import gradio as gr |
|
import pickle |
|
import os |
|
import sys |
|
|
|
|
|
print("Current directory:", os.getcwd()) |
|
print("Files in directory:", os.listdir()) |
|
|
|
|
|
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 |
|
|
|
|
|
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." |
|
) |
|
|
|
|
|
iface.launch(server_name="0.0.0.0", server_port=7860) |