223 / app.py
o0NonTH0o's picture
change to default
8b1fe6f
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()