How rijin-shaji/docuvalt-ai works
DocuVault AI is a tenant-isolated document Q&A product with a dashboard and developer API. The principal workflow is to add a file or URL, process its content into searchable chunks, then ask questions and receive grounded answers; the dashboard also supports account access, API keys, and usage views. Sampled code confirms the query, retrieval, generation, and background chunk-and-embedding paths. Upload dispatch, citation construction, and several dashboard/API integrations are not shown, so those connections are left out.
Main entry points: main.py FastAPI app · query.py Query endpoints · ingestion_tasks.py Ingestion task · ChatInterface.jsx Chat interface
Components 24
Web application
- Dashboard
frontend/src/pages/Dashboard.jsx - Chat interface
frontend/src/components/ChatInterface.jsx - API client
frontend/src/api/client.js - Login and signup
frontend/src/pages/Login.jsx
API and identity
- FastAPI app
backend/app/main.py - Auth endpoints
backend/app/api/v1/auth.py - Tenant authentication
backend/app/core/dependencies.py - API key endpoints
backend/app/api/v1/api_keys.py - Document endpoints
backend/app/api/v1/documents.py - Query endpoints
backend/app/api/v1/query.py - Usage endpoints
backend/app/api/v1/usage.py
Document ingestion
- Ingestion task
backend/app/tasks/ingestion_tasks.py - Content loaders
backend/app/ingestion/loaders/__init__.py - Text chunker
backend/app/ingestion/chunker.py - Embedding
backend/app/ingestion/embedder.py
Question answering
- RAG graph
backend/app/rag/graph.py - Vector retrieval
backend/app/rag/retrieval.py - Answer generation
backend/app/rag/llm.py
Persistence
- PostgreSQL
backend/app/db/postgres.py - Document vectors
backend/app/db/models/document_vector.py - Tenant records
backend/app/db/models/tenant.py - MongoDB
backend/app/db/mongo.py
Other components
- User
- Groq service
Connections 29
- User → Dashboard: uses
- Dashboard → Chat interface: opens
- Chat interface → Document endpoints: uploads files or URLs
- Chat interface → Query endpoints: sends questions
- Chat interface → API client: uploads through
- API client → FastAPI app: sends API requests
- Login and signup → Auth endpoints: submits credentials
- Auth endpoints → Tenant records: reads and writes
- Auth endpoints → PostgreSQL: uses session
- FastAPI app → Document endpoints: registers
- FastAPI app → Query endpoints: registers
- FastAPI app → Auth endpoints: registers
- FastAPI app → API key endpoints: registers
- FastAPI app → Usage endpoints: registers
- FastAPI app → MongoDB: pings health
- Document endpoints → Content loaders: dispatch unknown
- Ingestion task → Text chunker: chunks text
- Ingestion task → Embedding: embeds chunks
- Ingestion task → PostgreSQL: commits vectors
- Ingestion task → Document vectors: creates rows
- Query endpoints → Tenant authentication: requires tenant
- Query endpoints → PostgreSQL: gets session
- Query endpoints → RAG graph: invokes
- Query endpoints → Vector retrieval: retrieves for streaming
- Vector retrieval → Embedding: embeds query
- Vector retrieval → PostgreSQL: queries vectors
- Vector retrieval → Document vectors: filters and ranks
- Query endpoints → Answer generation: streams answer
- Answer generation → Groq service: requests completion