import gradio as gr from langchain_community.document_loaders import PyPDFLoader def summarise_pdf(pdf, progress=gr.Progress()): return "Summarised", "Complete!" with gr.Blocks() as demo: gr.Markdown("

PDF Summariser

") gr.Markdown("

Upload a PDF file and generate a summary

") gr.Markdown("
This project uses a MapReduce method to split the PDF into chunks, generate summaries of each of the chunks, and reduce them into a single final summary. Documents less than 3 pages use a Stuff method to simply stuff the entire document into the context window.
") with gr.Row(): with gr.Column(scale=1): pdf = gr.File(label="1. Upload PDF") summarise_btn = gr.Button(value="3. Summarise PDF", variant="primary") summary_progress = gr.Textbox(value="Not Started", label="Summary Progress") with gr.Column(scale=3): summary = gr.TextArea(label="Summary") summarise_btn.click(fn=summarise_pdf, inputs=pdf, outputs=[summary, summary_progress]) demo.launch()