import streamlit as st import pdfplumber from transformers import pipeline # Load AI Models summarizer = pipeline("summarization", model="facebook/bart-large-cnn") qa_model = pipeline("question-answering", model="deepset/roberta-base-squad2") # Function to extract text from PDF def extract_text_from_pdf(pdf): with pdfplumber.open(pdf) as pdf_file: text = "" for page in pdf_file.pages: text += page.extract_text() + "\n" return text # Function to summarize text def summarize_text(text): # Limit input to 1024 characters (Bart-large-cnn model limit) max_input_length = 1024 text = text[:max_input_length] # Truncate text to avoid errors summary = summarizer(text, max_length=200, min_length=50, do_sample=False) return summary[0]['summary_text'] # Function for Q&A def answer_question(context, question): response = qa_model(question=question, context=context) return response['answer'] # Streamlit UI st.set_page_config(page_title="MedGen-AI", page_icon="🩺", layout="wide") st.title("🩺 MedGen-AI: Medical Report Simplifier") uploaded_file = st.file_uploader("📄 Upload a Medical Report (PDF)", type="pdf") if uploaded_file: text = extract_text_from_pdf(uploaded_file) st.subheader("📜 Extracted Text from Report") st.write(text[:1000] + " ...") # Show first 1000 characters summary = summarize_text(text) st.subheader("📝 Simplified Medical Summary") st.write(summary) st.subheader("💬 Ask a Question About Your Report") user_question = st.text_input("🔍 Enter your question:") if user_question: answer = answer_question(text, user_question) st.write("🧑‍⚕️ **AI Answer:**", answer)