cryogenic22's picture
Create components/upload.py
5913aca verified
#src/components/upload.py
import streamlit as st
from utils.database import insert_document
def handle_document_upload(conn, backend):
st.markdown("### 📤 Upload Documents")
uploaded_files = st.file_uploader(
"Upload PDF documents",
type="pdf",
accept_multiple_files=True
)
if uploaded_files:
new_files = [f for f in uploaded_files if f.name not in st.session_state.processed_files]
if new_files:
with st.spinner("Processing documents..."):
all_texts, document_names, _ = backend.upload_and_parse_documents(new_files)
if all_texts:
try:
with conn:
for doc, doc_name in zip(all_texts, document_names):
if insert_document(conn, doc_name, doc):
st.session_state.processed_files.add(doc_name)
st.success(f"Successfully uploaded {len(new_files)} new documents!")
except Exception as e:
st.error(f"Error saving documents to database: {e}")