# -*- coding: utf-8 -*- """ Created on Mon May 8 00:32:30 2023 @author: ahmet """ import pdfplumber import gradio as gr from transformers import AutoTokenizer, AutoModelForSeq2SeqLM def respond(pdf_file): pdf_file_name = pdf_file.name all_text = '' with pdfplumber.open(pdf_file_name) as pdf: total_pages = len(pdf.pages) for idx, pdf_page in enumerate(pdf.pages): single_page_text = pdf_page.extract_text() all_text = all_text + '\n' + single_page_text print(idx/total_pages) if idx/total_pages >0.2: break tokenizer=AutoTokenizer.from_pretrained('Einmalumdiewelt/T5-Base_GNAD') model=AutoModelForSeq2SeqLM.from_pretrained('Einmalumdiewelt/T5-Base_GNAD', return_dict=True) inputs=tokenizer.encode("sumarize: " +all_text, return_tensors='pt', max_length=512, truncation=True) output = model.generate(inputs, min_length=70, max_length=80) summary=tokenizer.decode(output[0]) return summary with gr.Blocks() as demo: title = """

Talk with your document

""" gr.HTML(title) with gr.Row(): with gr.Column(): file_input = gr.File(label="PDF File", type="file") summarize = gr.Button("Summarize") text_output = gr.Textbox(label="Summarized text") summarize.click(fn=respond, inputs=file_input, outputs=text_output) demo.launch(debug=True)