| import streamlit as st | |
| from utils.api import upload_pdfs | |
| def render_upload_panel() -> None: | |
| st.markdown("### Documents") | |
| files = st.file_uploader( | |
| "Upload medical PDFs", | |
| type=["pdf"], | |
| accept_multiple_files=True, | |
| label_visibility="collapsed", | |
| help="PDFs are chunked, embedded, and stored in the knowledge base.", | |
| ) | |
| if files: | |
| st.caption(f"{len(files)} file(s) selected") | |
| if st.button("Process & Index", disabled=not files, use_container_width=True): | |
| with st.spinner(f"Embedding {len(files)} document(s)…"): | |
| try: | |
| result = upload_pdfs(files) | |
| chunks = result.get("chunks_indexed", "?") | |
| st.success(f"Indexed {chunks} chunks from {len(files)} file(s)") | |
| except Exception as exc: | |
| st.error(f"Upload failed: {exc}") | |