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

ModelGemma
FrontendTypeScript
Backend APIPython + FastAPI
LLM gatewayLiteLLM
Inference servervLLM
EmbeddingsEmbeddingGemma
Metadata and vectorsPostgres + pgvector
Object storageMinIO
Queue and cacheRedis

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.

Interested in LUX AI?

We discuss pilots and implementation directly.