Spaces:
Sleeping
Sleeping
File size: 1,655 Bytes
3cad9c7 9b126c8 a3d6b2a fee25ce 3cad9c7 6ece9ae 3cad9c7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
import gradio as gr
import joblib
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.calibration import CalibratedClassifierCV
# Attempt to load the model and vectorizer
try:
model = joblib.load("helix-psa.pkl")
print("Model loaded successfully:", type(model))
except Exception as e:
print("Error loading model:", e)
try:
vectorizer = joblib.load("helix-psa-vectorizer.pkl")
print("Vectorizer loaded successfully:", type(vectorizer))
except Exception as e:
print("Error loading vectorizer:", e)
def predictPasswordStrength(password_input):
password_tfidf = vectorizer.transform([password_input])
# Make predictions
predicted_proba = model.predict_proba(password_tfidf)
predicted_class = int(model.predict(password_tfidf)[0]) # Convert to Python integer
output = ''
if predicted_class == 0:
output = "The password is very weak..."
elif predicted_class == 1:
output = "The password is average."
else:
output = "The password is strong. But alas, it is not unbreakable."
confidence = float(predicted_proba.max())
return password_input, output, confidence
demo = gr.Interface(
fn=predictPasswordStrength,
inputs=[gr.Textbox('Hello123', label='Password', info='The password to check the strength of', max_lines=1)],
outputs=[gr.Dataframe(row_count = (2, "dynamic"), col_count=(3, "fixed"), label="Generated Names", headers=["Password", "Prediction", "Confidence"])],
title='Helix - Password Strength Analyzer',
description='A password strength analyzer, trained on over 10 million different passwords.'
)
demo.launch() |