# app.py import streamlit as st import pdfplumber from transformers import pipeline # Load QA model pipeline qa_pipeline = pipeline("question-answering", model="deepset/roberta-base-squad2") st.title("📄 PDF Question Answering using LLM") uploaded_pdf = st.file_uploader("Upload a PDF", type=["pdf"]) if uploaded_pdf: # Extract text from PDF with pdfplumber.open(uploaded_pdf) as pdf: extracted_text = "" for page in pdf.pages: extracted_text += page.extract_text() + "\n" # Store extracted text in session st.session_state['document_text'] = extracted_text st.success("✅ PDF uploaded and text extracted successfully!") # Display preview with st.expander("📄 Preview Extracted Text"): st.write(extracted_text[:1500] + "...") # Ask questions about the PDF if 'document_text' in st.session_state: st.subheader("💬 Ask a question based on the uploaded PDF") user_question = st.text_input("Enter your question") if user_question: with st.spinner("Generating answer..."): result = qa_pipeline({ "question": user_question, "context": st.session_state['document_text'] }) st.markdown(f"**Answer:** {result['answer']}")