Update app.py
Browse files
app.py
CHANGED
@@ -12,7 +12,7 @@ st.title("📄 PDF-based MCQ Generator")
|
|
12 |
st.sidebar.title("Upload & Settings")
|
13 |
|
14 |
# Upload PDF
|
15 |
-
pdf_file = st.sidebar.file_uploader("Upload a PDF file", type=["pdf"])
|
16 |
|
17 |
# Number of questions
|
18 |
number_of_questions = st.sidebar.slider("Number of questions", min_value=1, max_value=20, value=5)
|
@@ -60,14 +60,20 @@ prompt = PromptTemplate(
|
|
60 |
|
61 |
mcq_chain = LLMChain(llm=llm, prompt=prompt)
|
62 |
|
63 |
-
# PDF text extractor
|
64 |
-
def
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
# Generate MCQs
|
73 |
if st.sidebar.button("Generate MCQs"):
|
|
|
12 |
st.sidebar.title("Upload & Settings")
|
13 |
|
14 |
# Upload PDF
|
15 |
+
pdf_file = st.sidebar.file_uploader("Upload a PDF file", type=["pdf","docx"])
|
16 |
|
17 |
# Number of questions
|
18 |
number_of_questions = st.sidebar.slider("Number of questions", min_value=1, max_value=20, value=5)
|
|
|
60 |
|
61 |
mcq_chain = LLMChain(llm=llm, prompt=prompt)
|
62 |
|
63 |
+
# PDF or word text extractor
|
64 |
+
def extract_text(file):
|
65 |
+
if file.name.endswith(".pdf"):
|
66 |
+
doc = fitz.open(stream=file.read(), filetype="pdf")
|
67 |
+
full_text = ""
|
68 |
+
for page in doc:
|
69 |
+
full_text += page.get_text()
|
70 |
+
doc.close()
|
71 |
+
return full_text
|
72 |
+
elif file.name.endswith(".docx"):
|
73 |
+
doc = docx.Document(file)
|
74 |
+
return "\n".join([para.text for para in doc.paragraphs])
|
75 |
+
else:
|
76 |
+
return ""
|
77 |
|
78 |
# Generate MCQs
|
79 |
if st.sidebar.button("Generate MCQs"):
|