Spaces:
Paused
Paused
| #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}") |