import gradio as gr from PyPDF2 import PdfReader from transformers import pipeline # Load the pre-trained model for Q&A qa_pipeline = pipeline("question-answering", model="distilbert-base-uncased-distilled-squad") def extract_text_from_pdf(pdf): # Extract text from the uploaded PDF reader = PdfReader(pdf) text = "" for page in reader.pages: text += page.extract_text() return text def generate_qa(pdf, question): # Extract PDF content content = extract_text_from_pdf(pdf) # Perform question-answering answer = qa_pipeline(question=question, context=content) return answer["answer"] # Create the Gradio app interface with gr.Blocks() as app: gr.Markdown("## PDF Q&A Application") pdf_file = gr.File(label="Upload PDF", type="file") question = gr.Textbox(label="Ask a question about the PDF") answer = gr.Textbox(label="Answer") btn = gr.Button("Submit") btn.click(generate_qa, inputs=[pdf_file, question], outputs=answer) app.launch()