pragnakalp's picture
Update app.py
0cc82f8
raw
history blame
3.93 kB
import gradio as gr
from transformers import AutoTokenizer, AutoModelWithLMHead
import gc
import os
import pandas as pd
HF_TOKEN = os.environ.get("HF_TOKEN")
DATASET_NAME = "emotion_detection"
DATASET_REPO_URL = f"https://huggingface.co/datasets/pragnakalp/{DATASET_NAME}"
DATA_FILENAME = "emotion_detection_logs.csv"
DATA_FILE = os.path.join("emotion_detection_logs", DATA_FILENAME)
DATASET_REPO_ID = "pragnakalp/emotion_detection"
print("is none?", HF_TOKEN is None)
sentences_value = """Raj loves Simran.\nLast year I lost my Dog.\nI bought a new phone!\nShe is scared of cockroaches.\nWow! I was not expecting that.\nShe got mad at him."""
cwd = os.getcwd()
model_path = os.path.join(cwd)
tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-emotion")
model_base = AutoModelWithLMHead.from_pretrained(model_path)
def get_emotion(text):
# input_ids = tokenizer.encode(text + '</s>', return_tensors='pt')
input_ids = tokenizer.encode(text, return_tensors='pt')
output = model_base.generate(input_ids=input_ids,
max_length=2)
dec = [tokenizer.decode(ids) for ids in output]
label = dec[0]
gc.collect()
return label
def generate_emotion(article):
sen_list = article
sen_list = sen_list.split('\n')
sen_list_temp = sen_list[0:]
print(sen_list_temp)
results_dict = []
results = []
for sen in sen_list_temp:
if(sen.strip()):
cur_result = get_emotion(sen)
results.append(cur_result)
results_dict.append(
{
'sentence': sen,
'emotion': cur_result
}
)
# result = {
# 'result': results_dict,
# }
result = {'Input':sen_list_temp, 'Detected Emotion':results}
gc.collect()
add_csv = [results_dict]
with open(DATA_FILE, "a") as f:
writer = csv.writer(f)
# write the data
writer.writerow(add_csv)
commit_url = repo.push_to_hub()
print("commit data :",commit_url)
return pd.DataFrame(result)
"""
Save generated details
"""
# def save_data_and_sendmail(article,generated_questions,num_que,result):
# try:
# hostname = {}
# hostname = get_device_ip_address()
# url = 'https://pragnakalpdev35.pythonanywhere.com/HF_space_que_gen'
# # url = 'http://pragnakalpdev33.pythonanywhere.com/HF_space_question_generator'
# myobj = {'article': article,'total_que': num_que,'gen_que':result,'ip_addr':hostname.get("ip_addr",""),'host':hostname.get("host","")}
# x = requests.post(url, json = myobj)
# add_csv = [article, generated_questions, num_que]
# with open(DATA_FILE, "a") as f:
# writer = csv.writer(f)
# # write the data
# writer.writerow(add_csv)
# commit_url = repo.push_to_hub()
# print("commit data :",commit_url)
# # except Exception as e:
# # return "Error while storing data -->" + e
# # try:
# # with open(DATA_FILE, "r") as file:
# # data = json.load(file)
# # data.append(entry)
# # with open(DATA_FILE, "w") as file:
# # json.dump(data, file)
# # commit_url = repo.push_to_hub()
# except Exception as e:
# return "Error while sending mail" + e
# return "Successfully save data"
inputs = gr.Textbox(value=sentences_value,lines=10, label="Sentences",elem_id="inp_div")
outputs = [gr.Dataframe(row_count = (2, "dynamic"), col_count=(2, "fixed"), label="Here is the Result", headers=["Input","Detected Emotion"])]
demo = gr.Interface(
generate_emotion,
inputs,
outputs,
title="Emotion Detection",
description="Feel free to give your feedback",
css=".gradio-container {background-color: lightgray} #inp_div {background-color: #FB3D5;}"
)
demo.launch()