VasudevAdhikari commited on
Commit
51a55dc
·
1 Parent(s): a92fd71

Modify app.py with list[list] typehints

Browse files
Files changed (1) hide show
  1. app.py +35 -21
app.py CHANGED
@@ -25,26 +25,19 @@ sentiment_model.eval()
25
 
26
 
27
  # ==============================
28
- # FUNCTION (SIGNATURE UNCHANGED)
29
- # Input: DataFrame
30
- # Output: DataFrame
31
  # ==============================
32
 
33
- def nlp_encode_sentence(df: pd.DataFrame) -> pd.DataFrame:
34
 
35
- # Convert safely in case input is list-of-lists
36
- df = pd.DataFrame(df, columns=["value"])
37
 
38
  feature_rows = []
39
 
40
  for sentence in df["value"]:
41
 
42
- inputs = tokenizer(
43
- sentence,
44
- return_tensors="pt",
45
- truncation=True,
46
- padding=True
47
- )
48
 
49
  with torch.no_grad():
50
  outputs = bert_model(**inputs)
@@ -79,20 +72,41 @@ def nlp_encode_sentence(df: pd.DataFrame) -> pd.DataFrame:
79
  sentiment_score
80
  ])
81
 
82
- # Return as array (important for Gradio compatibility)
83
  return feature_rows
84
 
85
 
86
  # ==============================
87
- # GRADIO INTERFACE
88
  # ==============================
89
 
90
- demo = gr.Interface(
91
- fn=nlp_encode_sentence,
92
- inputs=gr.Dataframe(type="array"),
93
- outputs=gr.Dataframe(type="array"),
94
- api_name="encode"
95
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
 
97
  if __name__ == "__main__":
98
- demo.launch()
 
25
 
26
 
27
  # ==============================
28
+ # CORE FUNCTION
 
 
29
  # ==============================
30
 
31
+ def nlp_encode_sentence(values):
32
 
33
+ # values will be list of lists
34
+ df = pd.DataFrame(values, columns=["value"])
35
 
36
  feature_rows = []
37
 
38
  for sentence in df["value"]:
39
 
40
+ inputs = tokenizer(sentence, return_tensors="pt", truncation=True, padding=True)
 
 
 
 
 
41
 
42
  with torch.no_grad():
43
  outputs = bert_model(**inputs)
 
72
  sentiment_score
73
  ])
74
 
 
75
  return feature_rows
76
 
77
 
78
  # ==============================
79
+ # GRADIO APP (BLOCKS VERSION)
80
  # ==============================
81
 
82
+ with gr.Blocks() as demo:
83
+ gr.Markdown("### NLP Encoder")
84
+
85
+ input_data = gr.Dataframe(
86
+ headers=["value"],
87
+ datatype=["str"],
88
+ type="array"
89
+ )
90
+
91
+ output_data = gr.Dataframe(
92
+ headers=[
93
+ "embedding_mean",
94
+ "embedding_median",
95
+ "embedding_std",
96
+ "embedding_min",
97
+ "embedding_max",
98
+ "sentiment_score"
99
+ ],
100
+ type="array"
101
+ )
102
+
103
+ btn = gr.Button("Run")
104
+
105
+ btn.click(
106
+ fn=nlp_encode_sentence,
107
+ inputs=input_data,
108
+ outputs=output_data
109
+ )
110
 
111
  if __name__ == "__main__":
112
+ demo.launch()