MedGen-AI / app.py
Hasnain-Ali's picture
Update app.py
ce2b990 verified
raw
history blame
1.74 kB
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)