Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from utils.model_loader import load_models | |
| from utils.predict import predict | |
| vectorizer, model = load_models() | |
| def classify_email(text): | |
| if not text.strip(): | |
| return {"__not_spam__": 0.5} | |
| result = predict(text, vectorizer, model) | |
| if result == "Spam": | |
| return {"Spam": 1.0} | |
| else: | |
| return {"Not Spam": 1.0} | |
| with gr.Blocks(theme="soft", css="footer {display: none !important}") as demo: | |
| gr.Markdown( | |
| """ | |
| # 🚨 Spam Email Classifier | |
| Classify emails as **Spam** or **Not Spam** using TF-IDF + SVM | |
| """ | |
| ) | |
| with gr.Row(): | |
| with gr.Column(scale=4): | |
| input_text = gr.Textbox( | |
| lines=10, | |
| placeholder="Paste the full email content here...", | |
| label="Email Text", | |
| info="Include subject and body for better accuracy" | |
| ) | |
| with gr.Column(scale=1, min_width=200): | |
| output_label = gr.Label( | |
| label="Prediction", | |
| num_top_classes=1 | |
| ) | |
| with gr.Row(): | |
| submit_btn = gr.Button("Classify", variant="primary", size="lg") | |
| clear_btn = gr.ClearButton([input_text, output_label], value="Clear") | |
| submit_btn.click( | |
| fn=classify_email, | |
| inputs=input_text, | |
| outputs=output_label | |
| ) | |
| gr.Markdown("### Examples (click to load)") | |
| examples = gr.Examples( | |
| examples=[ | |
| ["Win a free iPhone! Click here now!!! Limited time offer."], | |
| ["Earn money from home with this simple trick. Start today."], | |
| ["Hey, are we still meeting for lunch tomorrow?"], | |
| ["Meeting rescheduled to 3 PM. See you then!"], | |
| ], | |
| inputs=input_text, | |
| outputs=output_label, | |
| fn=classify_email, | |
| cache_examples=False | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |