import streamlit as st from extractor import extract, FewDocumentsError from summarizer import summarize import time import cProfile # TODO: translation def main(): st.title("Trabalho de Formatura - Construindo textos para a internet") st.subheader("Lucas Antunes e Matheus Vieira") st.subheader("Digite o tópico sobre o qual você deseja gerar um resumo") query = st.text_input('Digite o tópico em inglês') #text is stored in this variable if 'few_documents' not in st.session_state: st.session_state['few_documents'] = False few_documents = False else: few_documents = st.session_state['few_documents'] button1 = st.button('Gerar resumo') if button1: start_time = time.time() try: with st.spinner('Extraindo textos relevantes...'): text = extract(query) except FewDocumentsError as e: few_documents = True st.session_state['few_documents'] = True st.session_state['documents'] = e.documents st.session_state['msg'] = e.msg else: st.info(f'(Extraction) Elapsed time: {time.time() - start_time:.2f}s') with st.spinner('Gerando resumo...'): summary = summarize(text) st.info(f'(Total) Elapsed time: {time.time() - start_time:.2f}s') st.markdown(f'Seu resumo para "{query}":\n\n> {summary}') if few_documents: st.warning(st.session_state['msg']) if st.button('Prosseguir'): start_time = time.time() with st.spinner('Extraindo textos relevantes...'): text = extract(query, extracted_documents=st.session_state['documents']) st.info(f'(Extraction) Elapsed time: {time.time() - start_time:.2f}s') with st.spinner('Gerando resumo...'): summary = summarize(text) st.info(f'(Total) Elapsed time: {time.time() - start_time:.2f}s') st.markdown(f'Seu resumo para "{query}":\n\n> {summary}') st.session_state['few_documents'] = False few_documents = False if __name__ == '__main__': cProfile.run('main()', 'stats.txt')