Spaces:
Sleeping
Sleeping
| # 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']}") | |