|
import gradio as gr |
|
import requests |
|
import os |
|
import numpy as np |
|
import pandas as pd |
|
import json |
|
|
|
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.json" |
|
DATA_FILE = os.path.join("que_gen_logs", DATA_FILENAME) |
|
DATASET_REPO_ID = "pragnakalp/Question_Generation_T5" |
|
print("is none?", HF_TOKEN is None) |
|
|
|
|
|
|
|
|
|
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 generate_questions(article,num_que): |
|
result = '' |
|
print("num_que :", num_que) |
|
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",'') |
|
entry = {"article": article, "generated_questions": generated_questions, "num_of_question": num_que} |
|
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() |
|
for q in generated_questions: |
|
print(q) |
|
result = result + q + '\n' |
|
|
|
return result |
|
|
|
|
|
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) |
|
|