# utils.py (Helper Functions) import pickle import os from pathlib import Path MODELS = { 'Support Vector Machine': 'Models/svm_model.pkl', 'Random Forest': 'Models/rf_model.pkl', 'K-Nearest Neighbors': 'Models/knn_model.pkl', 'Naive Bayes': 'Models/clf_NaiveBaised.pkl', 'Decision Tree': 'Models/DT_model.pkl' } def get_available_models(): """ Returns a list of available models """ return list(MODELS.keys()) def load_model(model_name): """ Loads the specified model from file. """ if model_name not in MODELS: raise ValueError(f"Model {model_name} not found") model_file = MODELS[model_name] try: with open(model_file, "rb") as file: model = pickle.load(file) return model except FileNotFoundError: raise FileNotFoundError(f"Model file {model_file} not found") except Exception as e: raise Exception(f"Error loading model: {str(e)}") def model_predict(email, model_name): """ Predicts using the specified model. """ try: model = load_model(model_name) prediction = model.predict([email]) return 1 if prediction[0] == 1 else -1 except Exception as e: raise Exception(f"Prediction error: {str(e)}")