URLGuardian / app.py
chgrdj's picture
Create app.py
f577cac verified
raw
history blame
1.77 kB
import streamlit as st
from transformers import pipeline
@st.cache_resource
def load_classifier(model_path: str):
# Loads the URLGuardian classifier from the Hugging Face Hub.
return pipeline("text-classification", model=model_path)
# App Title and description
st.title("URL Typosquatting Detection with URLGuardian")
st.markdown(
"This app uses the **URLGuardian** classifier by Anvilogic from the Hugging Face Hub to detect potential typosquatting. "
"Enter a legitimate URL and a potentially typosquatted URL to see the classifier's prediction."
)
# Load the classifier model from Hugging Face
model_path = "Anvilogic/URLGuardian" # Model repository on Hugging Face
classifier = load_classifier(model_path)
# URL inputs
url = st.text_input("Enter the URL:", value="https://example.com")
# Typosquatting detection on button click
if st.button("Check Typosquatting"):
if legit_url and suspect_url:
result = classifier(url)[0]
label = result['label']
score = result['score']
# Adjust the label names as per the model's documentation.
# This example assumes the label for a typosquatted URL might include "typo".
if "typo" in label.lower():
st.success(
f"The model predicts that '{suspect_url}' is likely a typosquatted version of '{legit_url}' "
f"with a confidence of {score * 100:.2f}%."
)
else:
st.warning(
f"The model predicts that '{suspect_url}' is NOT likely a typosquatted version of '{legit_url}' "
f"with a confidence of {score * 100:.2f}%."
)
else:
st.error("Please enter both a legitimate URL and a potentially typosquatted URL.")