import os os.system("pip install -U transformers==3.0.0") os.system("pip install nltk torch docx2txt") os.system("python -m nltk.downloader punkt") import gradio as gr import pandas as pd from question_generation.pipelines import pipeline import docx2txt def process_file(Notes): nlp = pipeline("question-generation", model="valhalla/t5-small-qg-prepend", qg_format="prepend") target_word_doc = Notes.name raw_word_file = docx2txt.process(target_word_doc) #remove empty lines preprocessed_sentence_list = [i for i in raw_word_file.splitlines() if i != ""] #grab content #processed_sentence_list = [] #content = False #for i in preprocessed_sentence_list: # if "Outline" in i: # content = True # continue # if "Summary Learning Points" in i: # content = False # continue # if "Learning Activity" in i: # content = False # continue # if content == True: # processed_sentence_list.append(i.lstrip()) qa_list = nlp(" ".join(preprocessed_sentence_list)) formatted_questions = "\n".join([str(idx+1) + ". " + i["question"] for idx, i in enumerate(qa_list)]) formatted_answers = "\n".join([str(idx+1) + ". " + i["answer"] for idx, i in enumerate(qa_list)]) return [formatted_questions, formatted_answers] io = gr.Interface(process_file, "file", outputs= [gr.Textbox(lines=1, label="Questions"), gr.Textbox(lines=1, label="Answers")]) io.launch()