|
import gradio as gr |
|
from train_abuse_model import ( |
|
run_training, |
|
evaluate_saved_model, |
|
push_model_to_hub |
|
) |
|
from predict_pipeline import run_prediction_pipeline |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## ๐ง Abuse Detection App") |
|
gr.Markdown("โ ๏ธ Keep this tab open while training or evaluating.") |
|
|
|
with gr.Tab("๐งช Train / Evaluate"): |
|
with gr.Row(): |
|
start_btn = gr.Button("๐ Start Training") |
|
eval_btn = gr.Button("๐ Evaluate Trained Model") |
|
push_btn = gr.Button("๐ค Push Model to Hub") |
|
output_box = gr.Textbox(label="Logs", lines=25, interactive=False) |
|
start_btn.click(fn=run_training, outputs=output_box) |
|
eval_btn.click(fn=evaluate_saved_model, outputs=output_box) |
|
push_btn.click(fn=push_model_to_hub, outputs=output_box) |
|
|
|
with gr.Tab("๐ฎ Abuse Detection"): |
|
desc_input = gr.Textbox(label="๐ Relationship Description", lines=5, placeholder="Write a relationship story here...") |
|
chat_upload = gr.File(label="๐ Optional: WhatsApp Chat ZIP (.zip)", file_types=[".zip"]) |
|
predict_btn = gr.Button("Run Prediction") |
|
|
|
enriched_output = gr.Textbox(label="๐ Enriched Input (Used for Prediction)", lines=8, interactive=False) |
|
label_output = gr.Textbox(label="๐ท๏ธ Predicted Labels", lines=2, interactive=False) |
|
|
|
predict_btn.click( |
|
fn=run_prediction_pipeline, |
|
inputs=[desc_input, chat_upload], |
|
outputs=[enriched_output, label_output] |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|