File size: 5,680 Bytes
2a5b9f4 233fac4 9c0d256 2274456 2a5b9f4 d512dba 2a5b9f4 207d8a5 9c0d256 207d8a5 2a5b9f4 b881409 1bff3b0 7efe916 1bff3b0 7efe916 1bff3b0 7efe916 1bff3b0 2a5b9f4 1bff3b0 f1a99c7 1bff3b0 c807374 1bff3b0 103b68c c807374 b881409 2ec0b1e b881409 2ca183b c807374 3c22964 1bff3b0 651b271 1bff3b0 651b271 3c22964 1bff3b0 207d8a5 1bff3b0 2a5b9f4 |
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
import gradio as gr
import requests
import os
import numpy as np
import pandas as pd
import json
import csv
import huggingface_hub
from huggingface_hub import Repository
# from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, AutoModelForSequenceClassification
from questiongenerator import QuestionGenerator
qg = QuestionGenerator()
HF_TOKEN = os.environ.get("HF_TOKEN")
DATASET_NAME = "Question_Generation_T5"
DATASET_REPO_URL = f"https://huggingface.co/datasets/pragnakalp/{DATASET_NAME}"
DATA_FILENAME = "que_gen_logs.csv"
DATA_FILE = os.path.join("que_gen_logs", DATA_FILENAME)
DATASET_REPO_ID = "pragnakalp/Question_Generation_T5"
print("is none?", HF_TOKEN is None)
# REPOSITORY_DIR = "data"
# LOCAL_DIR = 'data_local'
# os.makedirs(LOCAL_DIR,exist_ok=True)
try:
hf_hub_download(
repo_id=DATASET_REPO_ID,
filename=DATA_FILENAME,
cache_dir=DATA_DIRNAME,
force_filename=DATA_FILENAME
)
except:
print("file not found")
repo = Repository(
local_dir="que_gen_logs", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
)
def get_device_ip_address1():
result = {}
if os.name == "nt":
result = "Running on Windows"
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
result['ip_addr'] = ip_address
result['host'] = hostname
print(result)
return result
elif os.name == "posix":
gw = os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2], 0))
ipaddr = s.getsockname()[0]
gateway = gw[2]
host = socket.gethostname()
result['ip_addr'] = ipaddr
result['host'] = host
print(result)
return result
else:
result['id'] = os.name + " not supported yet."
print(result)
return result
def generate_questions(article,num_que):
result = ''
try:
if num_que == None or num_que == '':
num_que = 5
else:
num_que = num_que
generated_questions_list = qg.generate(article, num_questions=int(num_que))
summarized_data = {
"generated_questions" : generated_questions_list
}
generated_questions = summarized_data.get("generated_questions",'')
for q in generated_questions:
print(q)
result = result + q + '\n'
save_data_and_sendmail(article,generated_questions,num_que,result)
return result
except Exception as e:
return "Error while generating question -->" + e
"""
Save generated details
"""
def save_data_and_sendmail(article,generated_questions,num_que,result):
try:
print("=====================================================>>>>>>>>>>>>>>>>")
article1 = article
generated_questions1 = []
generated_questions1 = generated_questions
num_que1 = num_que
result1 = result
result2 = {}
print("********",article1,generated_questions1,num_que1,result1)
# hostname = get_device_ip_address()
if os.name == "nt":
result = "Running on Windows"
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
result2['ip_addr'] = ip_address
result2['host'] = hostname
print(result2)
elif os.name == "posix":
gw = os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2], 0))
ipaddr = s.getsockname()[0]
gateway = gw[2]
host = socket.gethostname()
result2['ip_addr'] = ipaddr
result2['host'] = host
print(result2)
else:
result2['id'] = os.name + " not supported yet."
print(result2)
hostname = result2
print(hostname)
url = 'https://pragnakalpdev35.pythonanywhere.com/HF_space_que_gen'
# url = 'http://pragnakalpdev33.pythonanywhere.com/HF_space_question_generator'
myobj = {'article': article1,'gen_que':result1,'ip_addr':hostname.get("ip_addr",""),'host':hostname.get("host","")}
print("myobj ",myobj)
x = requests.post(url, json = myobj)
print(x)
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"
return "Successfully save data"
## design 1
inputs=gr.Textbox(lines=5, label="Article/Text",elem_id="inp_div")
total_que = gr.Textbox(label="Number of Question want to generate",elem_id="inp_div")
outputs=gr.Textbox(lines=5, label="Generated Questions",elem_id="inp_div")
demo = gr.Interface(
generate_questions,
[inputs,total_que],
outputs,
title="Question Generation using T5",
description="Feel free to give your feedback",
css=".gradio-container {background-color: lightgray} #inp_div {background-color: #7FB3D5;"
)
demo.launch(enable_queue = False)
|