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() | |