import streamlit as st from PyPDF2 import PdfReader from transformers import pipeline summarizer = pipeline(task="summarization") # Basic text summary st.set_page_config( page_title='Text Summarizer' ) st.title('Text Summarization') # Text summary function def summarize_text(text): summary = summarizer(text) summary = summary[0]['summary_text'] return summary input = st.text_area('Enter long text') if st.button('Summarize text'): with st.spinner('Summarizing'): output = summarize_text(input) st.success('Summary complete ') st.markdown(f'''

Results

{output}
''', unsafe_allow_html=True) ##### # PDF summary section st.subheader('PDF summary') try: # Upload file uploaded_pdf = st.file_uploader('Choose a pdf file', type=['pdf']) if uploaded_pdf is not None: st.success('Succesfully uploaded') # Extract PDF content def extract_text(pdf_file): pdf_content = PdfReader(pdf_file) pages =pdf_content.pages # page_count = len(pages) page_text_stack = [] for page in pages: page_text = page.extract_text() page_text_stack.append(page_text) return page_text_stack except: # Handle blank file error st.error('Please select a valid file') # Prepare output # summary_pdf = pdfkit.from_string(pdf_output, 'Summary.pdf') if st.button('Summarize pdf content'): with st.spinner('Extracting text from PDF...'): pdf_input = extract_text(uploaded_pdf) st.success('Text extracted') pdf_output = [] for stack in pdf_input: summarize_text(stack) pdf_output.append(stack) with st.spinner('Summarizing extracted text...'): pdf_summary = '\n\n'.join(pdf_output) st.success('Summary complete') st.markdown(f'''

Download the summary here

{pdf_summary}

''', unsafe_allow_html=True) # st.write('Download summary pdf here') # download_button = st.download_button(summary_pdf, label='Download summary') st.success('PDF page summarized :)', icon="✅") st.write('') st.write('') st.markdown("
", unsafe_allow_html=True) #Horizontal line st.markdown("""
Project by kelechi_tensor
Resources Hugging face
""", unsafe_allow_html=True) # Peace Out :)