nyx / app.py
nanohit2's picture
Update app.py
c485e99 verified
import gradio as gr
from transformers import pipeline
import torch
MODEL = "AnasAlokla/multilingual_go_emotions"
classifier = pipeline(
"text-classification",
model=MODEL,
tokenizer=MODEL,
return_all_scores=True,
device=0 if torch.cuda.is_available() else -1
)
def detect_emotions(text):
if not text or not text.strip():
return {"top_emotion": "none", "top_score": 0.0, "all_emotions": {}}
out = classifier(text)[0] # list of dicts: each with label & score
# Find the emotion with highest score
top_emotion = max(out, key=lambda x: x['score'])
return {
"top_emotion": top_emotion['label'],
"top_score": round(top_emotion['score'], 3),
"all_emotions": {e['label']: round(e['score'], 3) for e in out}
}
demo = gr.Interface(
fn=detect_emotions,
inputs=gr.Textbox(lines=2, placeholder="Введите English или Russian..."),
outputs="json",
title="Emotion Detector",
description="Detects emotions using multilingual_go_emotions - shows top emotion"
)
if __name__ == "__main__":
demo.launch()