import pandas as pd import gradio as gr import joblib pipeline = joblib.load("pipeline.joblib") def predict( Have_IP, Have_At, URL_Length, URL_Depth, Redirection, https_Domain, TinyURL, Prefix_or_Suffix, DNS_Record, Domain_Age, Domain_End, iFrame, Mouse_Over, Right_Click, Web_Forwards ): sample = { "Have_IP": Have_IP, "Have_At": Have_At, "URL_Length": URL_Length, "URL_Depth": URL_Depth, "Redirection": Redirection, "https_Domain": https_Domain, "TinyURL": TinyURL, "Prefix/Suffix": Prefix_or_Suffix, "DNS_Record": DNS_Record, "Domain_Age": Domain_Age, "Domain_End": Domain_End, "iFrame": iFrame, "Mouse_Over": Mouse_Over, "Right_Click": Right_Click, "Web_Forwards": Web_Forwards } sample_df = pd.DataFrame([sample]) y_pred = pipeline.predict(sample_df) y_pred = int(y_pred[0]) return y_pred with gr.Blocks() as demo: gr.Markdown("# URL Classification Demo") Have_IP = gr.Checkbox(label="Have_IP") Have_At = gr.Checkbox(label="Have_At") URL_Length = gr.Checkbox(label="URL_Length") URL_Depth = gr.Number(label="URL_Depth", value=0) Redirection = gr.Checkbox(label="Redirection") https_Domain = gr.Checkbox(label="https_Domain") TinyURL = gr.Checkbox(label="TinyURL") Prefix_or_Suffix = gr.Checkbox(label="Prefix/Suffix") DNS_Record = gr.Checkbox(label="DNS_Record") Domain_Age = gr.Checkbox(label="Domain_Age") Domain_End = gr.Checkbox(label="Domain_End") iFrame = gr.Checkbox(label="iFrame") Mouse_Over = gr.Checkbox(label="Mouse_Over") Right_Click = gr.Checkbox(label="Right_Click") Web_Forwards = gr.Checkbox(label="Web_Forwards") output = gr.Label(label="Prediction Output") inputs = [ Have_IP, Have_At, URL_Length, URL_Depth, Redirection, https_Domain, TinyURL, Prefix_or_Suffix, DNS_Record, Domain_Age, Domain_End, iFrame, Mouse_Over, Right_Click, Web_Forwards ] outputs = output predict_btn = gr.Button("Predict", variant="primary") predict_btn.click(predict, inputs=inputs, outputs=outputs) if __name__ == "__main__": demo.launch()