Spaces:
Sleeping
Sleeping
File size: 1,628 Bytes
6eec5de 8439d88 8be214a 8439d88 4330106 a43c7d4 04bd264 ed35590 04bd264 ed35590 a661456 4330106 a43c7d4 4330106 a43c7d4 4330106 a43c7d4 4330106 a43c7d4 4330106 a43c7d4 e237f80 8439d88 b7b10e6 6eec5de b44ccd8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
from fastapi import FastAPI, File, UploadFile
import numpy as np
from PIL import Image
import io
import tensorflow as tf
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("chillies/distilbert-course-review-classification")
# from transformers import DistilBertTokenizer
# tokenizer = DistilBertTokenizer.from_pretrained("distilbert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("chillies/distilbert-course-review-classification")
# from transformers import DistilBertTokenizerFast
# tokenizer = DistilBertTokenizerFast.from_pretrained("distilbert-base-uncased")
# from transformers import pipeline
# model = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
def inference(review):
inputs = tokenizer(review, return_tensors="pt", padding=True, truncation=True)
outputs = model(**inputs)
# Assuming the model outputs logits
predicted_class = outputs.logits.argmax(dim=-1).item()
class_labels = [
'Improvement Suggestions', 'Questions', 'Confusion', 'Support Request',
'Discussion', 'Course Comparison', 'Related Course Suggestions',
'Negative', 'Positive'
]
return class_labels[predicted_class]
app = FastAPI()
@app.post("/classify")
async def classify(request: ReviewRequest):
reviews = request.reviews
predictions = []
# Process each review and get the predictions
for review in reviews:
predicted_class = inference(review)
predictions.append({predicted_class})
return {"predictions": predictions}
|