import gradio as gr context = gr.inputs.Textbox(lines=10, placeholder="Enter Formatted Paragraph/Content here...") output = gr.outputs.HTML(label="Question and Answers") radiobutton = gr.inputs.Radio(["Wordnet", "Sense2Vec"]) def generate_question(context,radiobutton): summary_text = summarizer(context,summary_model,summary_tokenizer) for wrp in wrap(summary_text, 250): print (wrp) # np = getnounphrases(summary_text,sentence_transformer_model,3) np = get_keywords(context,summary_text) print ("\n\nNoun phrases",np) output="" for answer in np: ques = get_question(summary_text,answer,question_model,question_tokenizer) if radiobutton=="Wordnet": distractors = get_distractors_wordnet(answer) else: distractors = get_distractors(answer.capitalize(),ques,s2v,sentence_transformer_model,40,0.2) # output= output + ques + "\n" + "Ans: "+answer.capitalize() + "\n\n" output = output + "" + ques + "
" # output = output + "
" output = output + "" + "Ans: " +answer.capitalize()+ "
" if len(distractors)>0: for distractor in distractors[:4]: output = output + "" + distractor+ "
" output = output + "
" summary ="Summary: "+ summary_text for answer in np: summary = summary.replace(answer,""+answer+" ") summary = summary.replace(answer.capitalize(),""+answer.capitalize()+"") output = output + "

"+summary+"

" return output iface = gr.Interface( fn=generate_question, inputs=[context,radiobutton], outputs=output, title="Automatic Question Generation using NLP") iface.launch(inline = False)