NC_Model_QA / app.py
Nemai's picture
Update app.py
ddf71df verified
import gradio as gr
from transformers import pipeline
import PyPDF2
# Load Hugging Face QA model (FLAN-T5)
qa_pipeline = pipeline("text2text-generation", model="google/flan-t5-large")
# Function to extract text from uploaded PDF and generate answer
def answer_question(pdf_file, question):
# Step 1: Read and extract text from the PDF
reader = PyPDF2.PdfReader(pdf_file)
pdf_text = ""
for page in reader.pages:
text = page.extract_text()
if text:
pdf_text += text.strip() + "\n"
# Step 2: Build the prompt
prompt = f"Context: {pdf_text}\nQuestion: {question}"
# Step 3: Run the model
result = qa_pipeline(prompt, max_length=512, do_sample=True)[0]['generated_text']
return result.strip()
# Gradio interface
iface = gr.Interface(
fn=answer_question,
inputs=[
gr.File(label="Upload a PDF file"),
gr.Textbox(label="Ask your question")
],
outputs="text",
title="PDF-Based Question Answering",
description="Upload a PDF and ask questions about its content using FLAN-T5."
)
# Launch the app
if __name__ == "__main__":
iface.launch()