service-internal commited on
Commit
6644ffe
·
verified ·
1 Parent(s): b053f3d

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +11 -20
main.py CHANGED
@@ -1,24 +1,20 @@
 
 
 
 
1
  from fastapi import FastAPI, Request
2
- from transformers import AutoModelForSequenceClassification, AutoConfig, RobertaTokenizer
3
  from scipy.special import softmax
4
  import numpy as np
5
- import os
6
 
7
  app = FastAPI()
8
 
9
- # Set HF cache and home directory to writable path
10
- os.environ["TRANSFORMERS_CACHE"] = "/tmp/hf-cache"
11
- os.environ["HF_HOME"] = "/tmp/hf-home"
12
-
13
- # Model and tokenizer setup
14
  MODEL = "cardiffnlp/twitter-roberta-base-sentiment-latest"
15
- TOKENIZER_MODEL = "cardiffnlp/twitter-roberta-base-sentiment"
16
 
17
- tokenizer = RobertaTokenizer.from_pretrained(TOKENIZER_MODEL)
18
  config = AutoConfig.from_pretrained(MODEL)
19
  model = AutoModelForSequenceClassification.from_pretrained(MODEL)
20
 
21
- # Preprocessing
22
  def preprocess(text):
23
  tokens = []
24
  for t in text.split():
@@ -29,22 +25,17 @@ def preprocess(text):
29
  tokens.append(t)
30
  return " ".join(tokens)
31
 
32
- # Endpoint
33
  @app.post("/analyze")
34
  async def analyze(request: Request):
35
  data = await request.json()
36
  text = preprocess(data.get("text", ""))
37
-
38
  encoded_input = tokenizer(text, return_tensors='pt')
39
  output = model(**encoded_input)
40
  scores = output[0][0].detach().numpy()
41
  scores = softmax(scores)
42
-
43
- ranking = np.argsort(scores)[::-1]
44
- result = []
45
- for i in ranking:
46
- label = config.id2label[i]
47
- score = round(float(scores[i]), 4)
48
- result.append({"label": label, "score": score})
49
-
50
  return {"result": result}
 
 
1
+ import os
2
+ os.environ["TRANSFORMERS_CACHE"] = "/tmp/hf-cache"
3
+ os.environ["HF_HOME"] = "/tmp/hf-home"
4
+
5
  from fastapi import FastAPI, Request
6
+ from transformers import AutoModelForSequenceClassification, AutoTokenizer, AutoConfig
7
  from scipy.special import softmax
8
  import numpy as np
 
9
 
10
  app = FastAPI()
11
 
 
 
 
 
 
12
  MODEL = "cardiffnlp/twitter-roberta-base-sentiment-latest"
 
13
 
14
+ tokenizer = AutoTokenizer.from_pretrained(MODEL)
15
  config = AutoConfig.from_pretrained(MODEL)
16
  model = AutoModelForSequenceClassification.from_pretrained(MODEL)
17
 
 
18
  def preprocess(text):
19
  tokens = []
20
  for t in text.split():
 
25
  tokens.append(t)
26
  return " ".join(tokens)
27
 
 
28
  @app.post("/analyze")
29
  async def analyze(request: Request):
30
  data = await request.json()
31
  text = preprocess(data.get("text", ""))
 
32
  encoded_input = tokenizer(text, return_tensors='pt')
33
  output = model(**encoded_input)
34
  scores = output[0][0].detach().numpy()
35
  scores = softmax(scores)
36
+ result = [
37
+ {"label": config.id2label[i], "score": round(float(scores[i]), 4)}
38
+ for i in scores.argsort()[::-1]
39
+ ]
 
 
 
 
40
  return {"result": result}
41
+