Our product
LUX AI
A document service that goes from upload to vector search (RAG) to question answering, built on Gemma and a fixed open-source stack. The browser talks only to FastAPI, the model is reached through LiteLLM, and files, vectors and jobs are kept in separate stores.
Service scope
From upload to a sourced answer
Upload
Users upload documents; the originals are stored in MinIO.
Index
The backend parses and chunks each document, creates embeddings with EmbeddingGemma and loads them into Postgres with pgvector.
Answer
A question retrieves the relevant chunks and Gemma writes the answer, with chunk and document names shown as sources.
Run in the background
Long documents, embedding and re-indexing run as asynchronous jobs on Redis, with status and retries for failed jobs.
Architecture principles
Four rules the design keeps
Single entry
The frontend calls FastAPI only.
Model abstraction
The app calls models through LiteLLM and never refers to the inference server directly.
Separated storage
MinIO for originals, Postgres with pgvector for metadata, chunks and vectors, Redis for queues and state.
Asynchronous first
Nothing heavy runs inside the upload request; embedding is handed to the queue.
Technology
A fixed, replaceable open-source stack
| Model | Gemma |
|---|---|
| Frontend | TypeScript |
| Backend API | Python + FastAPI |
| LLM gateway | LiteLLM |
| Inference server | vLLM |
| Embeddings | EmbeddingGemma |
| Metadata and vectors | Postgres + pgvector |
| Object storage | MinIO |
| Queue and cache | Redis |
Each component can be replaced on its own when needed.
Where it is going
Operational AI for buildings
Beyond documents, LUX AI is designed to analyse video, images, sensor data and inspection records together, to detect risks early, record quality issues with their evidence and automate repetitive inspection and reporting work.