SELVO

Technology

How SELVO is built and what it runs on. This page is for IT, infrastructure, and procurement teams that need to evaluate the platform before deployment.

Overview

SELVO is a self-hosted AI platform. The entire stack runs inside your private network on a single GPU host via Docker Compose. There is no cluster, no Kubernetes, and no cloud dependency at runtime.

The platform routes each request to the appropriate engine: content questions go through hybrid retrieval, analytical questions through a sandboxed code path, exact lookups straight to the data store. Generative tasks route directly to the LLM.

Hardware requirements are modest. The recommended configuration fits in a single small server rack and uses commodity components your IT team can procure from any supplier.

Architecture

Four containers run on a single GPU host. All inter-service communication stays inside the internal Docker network. No external calls are made during normal operation.

Docker Compose · Internal Network
Frontend
Next.js · :3000

Browser-based UI for document upload, querying, and admin dashboard.

Backend
FastAPI · :8001

Query routing, classification, hybrid search, analytics engine, GDPR, governance.

ChromaDB
Vectors · :8000

Vector embeddings store. Reconstructible from upload ledger if corrupted.

Local inference
vLLM · OpenAI-compatible

Runs 140+ open models on your GPU. Llama 3.1, Qwen 2.5, Mistral, Mixtral, Gemma, Phi-3, and more. See the Models section below.

Air-gapped Self-healing GPU-accelerated 4 uvicorn workers

Models we support

SELVO is not tied to any single AI model. The inference layer is OpenAI-compatible, which means it runs any of the 140+ open models in the vLLM catalog. You pick the model that fits your hardware, your language, and your legal jurisdiction. You can switch later without re-uploading your documents.

Below are the model families we deploy most often with customers in the EU. Naming a specific model is a deployment decision, not a marketing one, so we work through it during pilot scoping.

Meta Llama 3.1

8B · 70B · 405B

Strongest English reasoning. Most common choice for EU air-gapped deployments.

Alibaba Qwen 2.5

7B · 32B · 72B

Strongest multilingual coverage including German, French, Spanish, Italian, and Slavic languages.

Mistral Large + Mixtral

8x7B · 8x22B · Large 2

EU-developed. Frequently chosen for jurisdictional or procurement reasons.

Google Gemma 2

9B · 27B

Lightweight. Runs comfortably on a single 24 GB GPU for small teams.

Microsoft Phi-3

3.8B · 14B

Smallest footprint that still produces enterprise-quality answers. Fits the minimum hardware spec.

140+ more via vLLM

Open catalog

Anything OpenAI-API compatible: DeepSeek, Yi, Command R, internal forks. Bring your own.

How models stay current

A new model release (Llama 4, Qwen 3, etc.) is not an upgrade we push to your server. You decide when and whether to switch. Switching is a configuration change, not a redeployment. Your indexed documents and audit history stay in place. Every release of SELVO ships with a compatibility note listing the models we have validated against that version.

What you do not need to do

You do not need to fine-tune a base model. SELVO uses retrieval, not retraining, to specialize the model on your data (see the next section). You do not need to send anything to Selvo Lab to keep the model running: weights are downloaded once at deployment and live on your server from then on. You do not need a model science team. The runtime handles routing, quantization, and context window management.

How SELVO learns your company

The model itself never sees the inside of your company. SELVO uses retrieval-augmented generation: when a user asks a question, the platform searches your documents, retrieves the relevant passages, and asks the model to answer using only those passages. The model is the language layer. Your documents are the knowledge layer. The two stay separate.

Why this matters for compliance

A document is never mixed into the model weights. Knowledge is added by uploading documents and removed by deleting them. If a regulator orders erasure under GDPR Article 17, you can prove erasure by showing the document is gone from the index. You do not need to retrain or re-certify a model.

Adding and updating knowledge

Upload a document and the platform processes it once: text extraction (including OCR for scans), chunking, embedding, and storage in the vector index. The next query that needs it finds it. Replacing a document means the next query uses the new version. Removing it is immediate and tamper-evident in the audit trail.

Indexing runs entirely on your hardware

All processing (extraction, OCR, embedding) runs on the same GPU host as the model. Nothing is sent externally at any stage of the pipeline. The index can be rebuilt from the document ledger at any time without re-uploading anything.

Query types

Every request is classified and routed to the right engine. The wrong approach gives wrong answers, so SELVO picks the routing automatically based on what the question actually needs.

Reading documents

"What does the contract say about liability?"

Hybrid vector and BM25 search with cross-encoder reranking, followed by LLM synthesis. Every answer cites the exact source page.

Doing math

"Average revenue by region for Q4"

LLM generates Pandas code against your data schema. Sandboxed execution returns deterministic results from your actual files.

Finding records

"Show all rows where status is Active"

Direct DataFrame filtering and targeted record search. No LLM hallucination on structured data.

Summarizing

"Give me an executive summary"

Multi-sheet LLM synthesis across entire documents. Produces structured overviews with key findings.

Counting and listing

"How many documents are uploaded?"

Collection-level metadata queries answered directly from the document ledger.

Working across languages

Queries in any language

LLM-based cross-language reranking when embeddings cannot handle the query language.

Drafting and writing

"Draft a report, summarize findings, rewrite a clause"

Open-ended generative tasks routed directly to the LLM. No retrieval overhead when the task is purely generative.

Hardware requirements

The entire stack runs on a single GPU host. No cluster required. Two reference configurations below: a minimum that runs the full stack at smaller scale, and a recommended configuration sized for production use in the 200 to 500 user range.

Minimum Requirements
CPU
8 cores / 16 threads
RAM
32 GB
GPU
24 GB VRAM (NVIDIA)
Storage
256 GB NVMe SSD
Recommended
CPU
8 cores / 16 threads
RAM
32 GB DDR4/DDR5
GPU
RTX 5090 / RTX 6000
Storage
512 GB NVMe SSD