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)