Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from transformers import pipeline, PegasusForConditionalGeneration, PegasusTokenizer | |
| import nltk | |
| from fill_in_summary import FillInSummary | |
| from paraphrase import PegasusParaphraser | |
| import question_generator as q | |
| # Question Generator Variables | |
| ids = {'mt5-small': st.secrets['small'], | |
| 'mt5-base': st.secrets['base']} | |
| st.set_page_config(layout="centered") | |
| st.title('Question Generator by Eddevs') | |
| select = st.selectbox('Type', ['Question Generator', 'Paraphrasing', 'Summarization', 'Fill in the blank']) | |
| if select == "Question Generator": | |
| with st.form("question_gen"): | |
| # left_column, right_column = st.columns(2) | |
| # left_column.selectbox('Type', ['Question Generator', 'Paraphrasing']) | |
| #st.selectbox('Model', ['T5', 'GPT Neo-X']) | |
| # Download all models from drive | |
| q.download_models(ids) | |
| # Model selection | |
| model_path = st.selectbox('', options=[k for k in ids], index=1, help='Model to use. ') | |
| model = q.load_model(model_path=f"model/{model_path}.ckpt") | |
| text_input = st.text_area("Input Text") | |
| submitted = st.form_submit_button("Generate") | |
| split = st.checkbox('Split into sentences', value=True) | |
| if split: | |
| # Split into sentences | |
| sent_tokenized = nltk.sent_tokenize(inputs) | |
| res = {} | |
| with st.spinner('Please wait while the inputs are being processed...'): | |
| # Iterate over sentences | |
| for sentence in sent_tokenized: | |
| predictions = model.multitask([sentence], max_length=512) | |
| questions, answers, answers_bis = predictions['questions'], predictions['answers'], predictions[ | |
| 'answers_bis'] | |
| # Build answer dict | |
| content = {} | |
| for question, answer, answer_bis in zip(questions[0], answers[0], answers_bis[0]): | |
| content[question] = {'answer (extracted)': answer, 'answer (generated)': answer_bis} | |
| res[sentence] = content | |
| # Answer area | |
| st.write(res) | |
| else: | |
| with st.spinner('Please wait while the inputs are being processed...'): | |
| # Prediction | |
| predictions = model.multitask([inputs], max_length=512) | |
| questions, answers, answers_bis = predictions['questions'], predictions['answers'], predictions[ | |
| 'answers_bis'] | |
| # Answer area | |
| zip = zip(questions[0], answers[0], answers_bis[0]) | |
| content = {} | |
| for question, answer, answer_bis in zip: | |
| content[question] = {'answer (extracted)': answer, 'answer (generated)': answer_bis} | |
| st.write(content) | |
| if submitted: | |
| with st.spinner('Wait for it...'): | |
| result = FillInSummary().summarize(text_input) | |
| st.write(text_input) | |
| elif select == "Summarization": | |
| with st.form("summarization"): | |
| # left_column, right_column = st.columns(2) | |
| # left_column.selectbox('Type', ['Question Generator', 'Paraphrasing']) | |
| #st.selectbox('Model', ['T5', 'GPT Neo-X']) | |
| text_input = st.text_area("Input Text") | |
| submitted = st.form_submit_button("Generate") | |
| if submitted: | |
| with st.spinner('Wait for it...'): | |
| result = FillInSummary().summarize(text_input) | |
| st.write(text_input) | |
| elif select == "Fill in the blank": | |
| with st.form("fill_in_the_blank"): | |
| text_input = st.text_area("Input Text") | |
| submitted = st.form_submit_button("Generate") | |
| if submitted: | |
| with st.spinner('Wait for it...'): | |
| fill = FillInSummary() | |
| result = fill.summarize(text_input) | |
| result = fill.blank_ne_out(result) | |
| st.write(result) | |
| elif select == "Paraphrasing": | |
| with st.form("paraphrasing"): | |
| # st.selectbox('Model', ['T5', 'GPT Neo-X']) | |
| left_column, right_column = st.columns(2) | |
| count = left_column.slider('Count', 0, 10, 3) | |
| temperature = right_column.slider('Temperature', 0.0, 10.0, 1.5) | |
| text_input = st.text_area("Input Text") | |
| submitted = st.form_submit_button("Generate") | |
| if submitted: | |
| with st.spinner('Wait for it...'): | |
| paraphrase_model = PegasusParaphraser(num_return_sequences=count,temperature=temperature) | |
| result = paraphrase_model.paraphrase(text_input) | |
| st.write(result) | |
| #if st.button('Generate'): | |
| # st.write(input) | |
| #st.success("We have generated 105 Questions for you") | |
| # st.snow() | |
| ##else: | |
| ##nothing here | |