pdf-summarizer / app.py
ritchi1's picture
Create app.py
84038fa verified
raw
history blame
1.14 kB
import gradio as gr
from transformers import pipeline
import PyPDF2
# Load the summarization pipeline
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
def summarize_pdf(pdf_file):
try:
# Extract text from the uploaded PDF
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page in pdf_reader.pages:
text += page.extract_text()
# Check if text was extracted
if not text.strip():
return "❌ Could not extract text from the PDF. Please upload a valid document."
# Summarize the extracted text
summary = summarizer(text, max_length=300, min_length=50, do_sample=False)
return summary[0]['summary_text']
except Exception as e:
return f"❌ An error occurred: {str(e)}"
# Create the Gradio interface
interface = gr.Interface(
fn=summarize_pdf,
inputs=gr.inputs.File(label="Upload PDF"),
outputs=gr.outputs.Textbox(label="Summary"),
title="PDF Summarizer",
description="Upload a PDF file to extract and summarize its content using state-of-the-art AI."
)
interface.launch()