Spaces:
Runtime error
Runtime error
from transformers import RobertaTokenizer, AutoModelForSequenceClassification | |
from scipy.special import expit | |
import numpy as np | |
import os | |
import gradio as gr | |
import requests | |
from datetime import datetime | |
# set up model | |
authtoken = os.environ.get("TOKEN") | |
tokenizer = RobertaTokenizer.from_pretrained("guidecare/feelings_and_issues_large_v2", token=authtoken, use_safetensors=True) | |
tokenizer.do_lower_case = True | |
model = AutoModelForSequenceClassification.from_pretrained("guidecare/feelings_and_issues_large_v2", token=authtoken, use_safetensors=True) | |
all_label_names = list(model.config.id2label.values()) | |
def predict(text): | |
probs = expit(model(**tokenizer([text], return_tensors="pt", padding=True)).logits.detach().numpy()) | |
probs = [float(np.round(i, 2)) for i in probs[0]] | |
zipped_list = list(zip(all_label_names, probs)) | |
print(text, zipped_list) | |
issues = [(i, j) for i, j in zipped_list if i.startswith('issue')] | |
feelings = [(i, j) for i, j in zipped_list if i.startswith('feeling')] | |
harm = [(i, j) for i, j in zipped_list if i.startswith('harm')] | |
sentiment = [(i, j) for i, j in zipped_list if i.startswith('sentiment')] | |
issues = sorted(issues, key=lambda x: x[1], reverse=True) | |
feelings = sorted(feelings, key=lambda x: x[1], reverse=True) | |
harm = sorted(harm, key=lambda x: x[1], reverse=True) | |
sentiment = sorted(sentiment, key=lambda x: x[1], reverse=True) | |
top = issues + feelings + harm + sentiment | |
d = {i: j for i, j in top} | |
return d | |
iface = gr.Interface( | |
fn=predict, | |
inputs=gr.Textbox(label="Enter text"), | |
outputs=gr.Label(label="Predictions"), | |
title="Emotion and Issue Predictor", | |
description="Enter a text to predict emotions and issues.", | |
) | |
if __name__ == "__main__": | |
iface.launch() |