Spaces:
Runtime error
Runtime error
import streamlit as st | |
from joblib import load | |
from sklearn.pipeline import Pipeline | |
# Load the pre-trained model | |
model: Pipeline = load('app/trained_intent_classifier.joblib') | |
def classify_intent(text, model, threshold=0.7): | |
# Predict the probability distribution over the classes | |
probs = model.predict_proba([text])[0] | |
# Get the maximum probability and its corresponding class | |
confidence = max(probs) | |
intent = model.classes_[probs.argmax()] | |
# Check if the confidence meets the threshold | |
if confidence < threshold: | |
return "NLU fallback: Intent could not be confidently determined" | |
else: | |
return f"Intent: {intent}, Confidence: {confidence:.2f}" | |
def main(): | |
st.title("Intent Classification App") | |
st.write(""" | |
This app uses a machine learning model to classify user intents based on the text they provide. | |
Simply enter some text below and click 'Classify' to see the predicted intent and confidence level. | |
""") | |
# Sidebar for settings | |
st.sidebar.title("Settings") | |
threshold = st.sidebar.slider("Confidence Threshold", 0.0, 1.0, 0.7, 0.01) | |
st.sidebar.write("Adjust the confidence threshold to classify intents.") | |
# User input in the main area | |
user_input = st.text_area("Enter your text here:", height=150) | |
if st.button("Classify"): | |
if user_input: | |
# Classify the intent | |
result = classify_intent(user_input, model, threshold=threshold) | |
st.success(f"Classified as: {result}") | |
else: | |
st.error("Please enter some text to classify.") | |
if __name__ == "__main__": | |
main() | |