Spaces:
Sleeping
Sleeping
File size: 2,253 Bytes
1a8cbd9 68ec0d7 ad90bdc 1a8cbd9 37eca50 7b69be8 68ec0d7 7b69be8 37eca50 ab26148 1a8cbd9 68ec0d7 37eca50 68ec0d7 ad90bdc 68ec0d7 37eca50 68ec0d7 555ba72 68ec0d7 37eca50 68ec0d7 37eca50 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 7b69be8 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 7b69be8 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 555ba72 68ec0d7 37eca50 68ec0d7 555ba72 68ec0d7 37eca50 68ec0d7 37eca50 68ec0d7 555ba72 68ec0d7 555ba72 37eca50 68ec0d7 1a8cbd9 68ec0d7 555ba72 68ec0d7 1a8cbd9 68ec0d7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | import streamlit as st
from src.grobid import extract_metadata_grobid
from src.pdf_parser import extract_text_from_pdf
from src.rag_pipeline import (
create_rag_database,
analyze_paper
)
def upload_section():
st.header("📤 Upload Research Papers")
uploaded_files = st.file_uploader(
"Upload PDF papers",
type="pdf",
accept_multiple_files=True
)
if not uploaded_files:
return
new_papers = []
progress = st.progress(0)
status = st.empty()
total_files = len(uploaded_files)
for idx, file in enumerate(uploaded_files):
status.write(
f"Processing **{file.name}**..."
)
# ----------------------------
# GROBID Metadata
# ----------------------------
try:
meta = extract_metadata_grobid(file)
except Exception:
meta = {
"title": file.name.replace(".pdf", ""),
"authors": ["Unknown"],
"abstract": ""
}
# ----------------------------
# Read Full Paper
# ----------------------------
file.seek(0)
text = extract_text_from_pdf(file)
meta["text"] = text
if not meta.get("abstract"):
meta["abstract"] = text[:3000]
# ----------------------------
# One AI Call
# ----------------------------
try:
ai_result = analyze_paper(
text=text,
abstract=meta["abstract"]
)
meta.update(ai_result)
except Exception:
meta["summary"] = "Summary could not be generated."
meta["abstract_summary"] = "Abstract summary unavailable."
meta["limitations"] = "Limitations unavailable."
meta["research_gaps"] = "Research gaps unavailable."
new_papers.append(meta)
progress.progress(
(idx + 1) / total_files
)
st.session_state.papers.extend(
new_papers
)
create_rag_database(
st.session_state.papers
)
progress.empty()
status.empty()
st.success(
f"Successfully processed {len(new_papers)} paper(s)."
) |