Chat with your documents — a RAG platform with per-user vector isolation
Role
Solo engineer — architecture, backend and frontend
Vector store
Per-user isolation
LLM providers
GPT-4o + Gemini
Ingest
Token-aware chunking
Teams sitting on hundreds of pages of PDF documentation have no fast way to get answers out of it. Generic chatbots hallucinate because nothing grounds them, and naive RAG implementations leak one user's documents into another user's answers.
A FastAPI backend ingests PDFs, chunks them token-aware, embeds with OpenAI text-embedding-3-small and stores vectors in Chroma Cloud under per-user collections. A LangGraph agent orchestrates retrieval — optionally across several collections at once — before composing an answer with GPT-4o or Gemini, selected by environment. Conversation history, generated summaries and feedback persist in MongoDB.
Every collection is namespaced user_{userId}_ and access is enforced server-side, so cross-user retrieval is structurally impossible rather than filtered after the fact.
FastAPI + Pydantic API with JWT bearer auth and bcrypt password hashing. LangGraph handles retrieval orchestration; LangChain wires the model and vector-store adapters. Chroma Cloud stores vectors, MongoDB stores users, chat history, reset tokens and email logs. Optional SMTP for password reset. Uploads are capped at 10MB with chunking and embedding on ingest. The frontend is Next.js 15 + React 19 on Tailwind v4, with Zustand for client state and TanStack Query for server state.
Interested in work like this?
Get in touch