Maryam-1 commited on
Commit
e7103d3
·
1 Parent(s): 1e7e7d7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -15
app.py CHANGED
@@ -1,11 +1,3 @@
1
- # app.py
2
-
3
- import subprocess
4
-
5
- # Install dependencies
6
- subprocess.run(["pip", "install", "-r", "requirements.txt"])
7
-
8
- # Rest of your code
9
  import gradio as gr
10
  from transformers import AutoTokenizer, AutoModelForSequenceClassification
11
 
@@ -15,11 +7,11 @@ tokenizer = AutoTokenizer.from_pretrained(model_name)
15
  model = AutoModelForSequenceClassification.from_pretrained(model_name)
16
 
17
  # Define emotion labels used by the model
18
- emotion_labels = ["admiration", "amusement", "anger", "annoyance", "approval",
19
- "caring", "confusion", "curiosity", "desire", "disappointment",
20
- "disapproval", "disgust", "embarrassment", "excitement",
21
- "fear", "gratitude", "grief", "joy", "love", "nervousness",
22
- "optimism", "pride", "realization", "relief", "remorse",
23
  "sadness", "surprise", "neutral"]
24
 
25
  def predict_emotion(text):
@@ -29,15 +21,34 @@ def predict_emotion(text):
29
  predicted_class = logits.argmax().item()
30
 
31
  predicted_emotion = emotion_labels[predicted_class]
32
- return predicted_emotion # Return the predicted emotion directly
 
 
 
 
 
 
 
 
 
 
33
 
34
  iface = gr.Interface(
35
  fn=predict_emotion,
36
  inputs=gr.Textbox(),
37
- outputs="text",
 
 
 
 
38
  live=True,
39
  title="Emotion Prediction",
40
  description="Enter a sentence for emotion prediction.",
41
  )
42
 
 
 
 
 
 
43
  iface.launch()
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from transformers import AutoTokenizer, AutoModelForSequenceClassification
3
 
 
7
  model = AutoModelForSequenceClassification.from_pretrained(model_name)
8
 
9
  # Define emotion labels used by the model
10
+ emotion_labels = ["admiration", "amusement", "anger", "annoyance", "approval",
11
+ "caring", "confusion", "curiosity", "desire", "disappointment",
12
+ "disapproval", "disgust", "embarrassment", "excitement",
13
+ "fear", "gratitude", "grief", "joy", "love", "nervousness",
14
+ "optimism", "pride", "realization", "relief", "remorse",
15
  "sadness", "surprise", "neutral"]
16
 
17
  def predict_emotion(text):
 
21
  predicted_class = logits.argmax().item()
22
 
23
  predicted_emotion = emotion_labels[predicted_class]
24
+ confidence = logits.softmax(dim=1).squeeze()[predicted_class].item()
25
+ return predicted_emotion, confidence # Return the predicted emotion and confidence
26
+
27
+ def get_confidence_color(confidence):
28
+ # Define a color scale based on confidence
29
+ if confidence >= 0.8:
30
+ return "green"
31
+ elif confidence >= 0.5:
32
+ return "orange"
33
+ else:
34
+ return "red"
35
 
36
  iface = gr.Interface(
37
  fn=predict_emotion,
38
  inputs=gr.Textbox(),
39
+ outputs=[
40
+ gr.Textbox(),
41
+ "text",
42
+ gr.Textbox("Confidence Score:", default=""),
43
+ ],
44
  live=True,
45
  title="Emotion Prediction",
46
  description="Enter a sentence for emotion prediction.",
47
  )
48
 
49
+ # Customize the interface appearance
50
+ iface.style(
51
+ confidence_score=get_confidence_color
52
+ )
53
+
54
  iface.launch()