import gradio as gr from transformers import pipeline # 1) Load the HF pipeline with all scores so we can show probabilities classifier = pipeline( "text-classification", model="j-hartmann/emotion-english-roberta-large", return_all_scores=True ) # 2) Wrap it in a function that returns a label→score dict def classify_emotion(text: str): scores = classifier(text)[0] # returns list of {label, score} return {item["label"]: float(item["score"]) for item in scores} # 3) Build the Gradio interface iface = gr.Interface( fn=classify_emotion, inputs=gr.Textbox( lines=2, placeholder="Type any English sentence here…", label="Input Text" ), outputs=gr.Label( num_top_classes=6, label="Emotion Probabilities" ), examples=[ ["I love you!"], ["The movie was heart breaking!"] ], title="English Emotion Classifier", description=( "Predicts one of Ekman's 6 basic emotions plus neutral " "(anger 🤬, disgust 🤢, fear 😨, joy 😀, neutral 😐, " "sadness 😭, surprise 😲)." ) ) if __name__ == "__main__": iface.launch()