Skip to content

Add Document Management UI and Multi-Document Support #21

@h6y3

Description

@h6y3

Problem Description

The current NotebookLlaMa interface has a UX disconnect between its backend capabilities and frontend presentation. While the system successfully accumulates documents in the LlamaCloud pipeline over time, users have no visibility into previously uploaded documents, creating confusion about whether documents are being added to a persistent repository or processed in isolation.

Current Issues:

  1. No Document List: Users cannot see previously uploaded documents
  2. No Upload History: No indication of what has been processed before
  3. Misleading UX: Each upload appears to be a "fresh start" when documents are actually cumulative
  4. No Document Management: Cannot remove, re-process, or manage individual documents
  5. Hidden Multi-Document Capability: The Document Chat can query across all documents, but users don't know which documents are included

Expected Behavior (NotebookLM-like Experience)

Users should be able to:

  • See a list of all uploaded documents in their current "notebook"
  • Add new documents to the existing collection
  • Remove documents from the collection
  • See document metadata (upload date, file size, processing status)
  • Understand that Document Chat queries across all uploaded documents
  • Optionally re-process individual documents

Technical Analysis

Current Architecture:

  • Backend: Multi-document pipeline that grows over time (PIPELINE_ID)
  • Frontend: Single-document interface with no persistence UI
  • Storage: Documents stored in LlamaCloud pipeline but no local metadata tracking

Files Involved:

  • src/notebookllama/Home.py - Main upload interface
  • src/notebookllama/utils.py - Document processing (process_file function)
  • src/notebookllama/workflow.py - Document workflow
  • src/notebookllama/pages/1_Document_Chat.py - Chat interface

Proposed Solution

Phase 1: Document List UI

  1. Add Document Tracking:

    • Create a local database/JSON file to track uploaded documents
    • Store metadata: filename, upload_date, file_id, processing_status
    • Track which documents belong to current session/notebook
  2. Enhance Home.py:

    • Add a "Documents in this Notebook" section above the upload area
    • Display list of uploaded documents with metadata
    • Add remove/delete functionality per document
  3. Update Document Processing:

    • Save document metadata when processing completes
    • Update UI to show processing status (processing, completed, failed)

Phase 2: Enhanced Document Management

  1. Document Actions:

    • Re-process individual documents
    • Download processed content per document
    • Bulk document operations
  2. Document Chat Enhancement:

    • Show which documents are being queried
    • Source attribution per document in responses

Phase 3: Multi-Notebook Support (Future)

  1. Notebook Management:
    • Create/switch between different notebooks
    • Separate pipelines per notebook
    • Notebook-specific document collections

Acceptance Criteria

  • Users can see a list of all uploaded documents
  • Users can remove documents from the collection
  • Upload interface clearly indicates documents are being added to existing collection
  • Document Chat page shows which documents are being queried
  • Processing status is visible for each document
  • Document metadata (name, date, size) is displayed
  • System handles document removal from both UI and LlamaCloud pipeline

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions