An AI-powered multi-space document analysis platform where users can upload documents, ask questions about them, and receive context-aware answers with source citations.
The system uses Retrieval-Augmented Generation (RAG) with vector search to provide answers strictly from uploaded documents.
- Create multiple independent spaces
- Rename spaces
- Delete spaces
- Track last activity per space
- Strict context isolation between spaces
-
Upload PDF documents
-
Multiple documents per space
-
Delete documents
-
Processing status tracking:
- processing
- ready
- failed
- Ask questions about uploaded documents
- Context-aware answers
- Conversation history support
- Source citations included in responses
- Snippet + page references for retrieved chunks
- Automatic document chunking
- Embedding generation
- Semantic retrieval using Qdrant
- Per-space retrieval isolation
Frontend (React)
↓
Backend Service (Node.js + Express + PostgreSQL)
↓
AI Service (FastAPI)
↓
Qdrant Vector Database
- React
- TypeScript
- Vite
- LESS
- Node.js
- Express
- PostgreSQL
- TypeScript
- FastAPI
- Sentence Transformers
- Google Gemini API / Ollama (configurable)
- LangChain-style RAG flow
- Docker
- Docker Compose
- Qdrant
- Multi-space document analysis
- Context-aware AI chat
- PDF ingestion
- Vector search
- Source citations
- Space/document CRUD operations
- Shared storage between services
- Dockerized development environment
root/
├── backend/
├── ai-service/
├── frontend/
├── docker-compose.yml
- Docker
- Docker Compose
docker compose up --build| Service | Port |
|---|---|
| Frontend | 5173 |
| Backend | 3000 |
| AI Service | 8000 |
| Qdrant | 6333 |
| PostgreSQL | 5432 |
Create .env files for backend and AI service.
Example:
GEMINI_API_KEY=
LLM_PROVIDER=gemini
GEMINI_MODEL=gemma-4-31b-itDo not commit real secrets.
- Create space
- Get spaces
- Update space name
- Delete space
- Upload document
- Get documents for a space
- Delete document
- Ask questions
- Retrieve sources
- Persist conversation history
This project is currently under active development.
The focus is on building a scalable and production-oriented AI document analysis system with clean architecture and strong separation between application logic and AI processing.
MIT