My Space¶
My Space is the personal knowledge base for B2C users. A learner, parent, or self-serve trainer uploads their own notes, syllabus, or previous-year papers, and the AI tutor grounds answers in that material and cites it. It's the B2B trainer Knowledge Base, scoped to one individual.
How it works¶
My Space reuses the B2B Knowledge Base pipeline end to end: upload to GCS, OCR, chunk, embed, and store owner-tagged vectors in Qdrant. The only B2C-specific pieces are the /myspace surface and a retrieval filter that returns a non-trainer's own uploads at chat time.
Every B2C user shares one org_unit_id (the Individual workspace), so that is not an isolation boundary. Isolation is by owner_user_id: a My Space document is retrievable only by the user whose owner_user_id matches it. Documents are stored with visibility = teacher_private so they never surface through the org-shared retrieval branch.
flowchart TD
A[B2C user opens /myspace] --> B[Upload PDF: file + optional title/subject]
B --> C[GCS + OCR + chunk + embed]
C --> D[Qdrant chunk: owner_user_id = user.id, teacher_private]
D --> E[User asks about the doc in chat]
E --> F[Retrieval matches on owner_user_id]
F --> G[AI grounds answer and cites the document]
The B2C upload form is the simplified variant: file plus optional title and subject, with no institutional targeting (no program, branch, semester, or board). Documents move through the shared pending → processing → completed status pipeline. A B2C user can also connect Google Drive and manage (list, delete) their stored documents.
My Space is strictly private per user: no sharing, no cross-user visibility. A mock-test document uploaded during onboarding routes through the same upload_document(document_type="mock_test") path and appears in My Space afterward.
Free-tier upload gating¶
Free B2C users hit limits on what they can store. Exceeding any limit triggers the Pro paywall.
- 10 files per chat
- 10 My Space documents
- 5 MB per document
Where it lives¶
- Route:
/myspace - Renders the existing
KnowledgeBasePagewith theknowledge-baseservice,UploadModal, andGDriveImportModal - Retrieval branch:
build_institution_access_filterinkwilo-chatbot(adds theowner_user_id == user_idbranch for every persona)