RAG

RAG vektorandmebaasi majutus (ChromaDB & pgvector)

lugemisaeg · 7 min

Retrieval-augmented generation vajab kohta, kus embedding’uid hoida. Selle vektorhoidla ise majutamine VPS-il hoiab sinu dokumendid privaatsena ja kulud kontrolli all. Kaks head valikut: ChromaDB (lihtne) või PostgreSQL koos pgvectoriga (tootmiskeskkonna jaoks).

Sammud

01

Variant A — ChromaDB

ChromaDB on kiireim viis alustada. Paigalda see pip-iga ja käivita server püsiva andmekaustaga.

$ python3 -m venv venv && source venv/bin/activate
$ pip install chromadb
$ chroma run --path ~/chroma-data --port 8000
02

Variant B — PostgreSQL + pgvector

Tootmisseadistuse jaoks lisa pgvector laiendus PostgreSQL-i ja salvesta embedding’ud kõrvuti relatsiooniliste andmetega.

$ sudo apt-get install -y postgresql postgresql-16-pgvector
$ sudo -u postgres psql -c "CREATE EXTENSION vector;"
03

Loo vektor-veerg

pgvector’is salvesta embedding’ud vektor-veeruna ja lisa indeks kiireks sarnasusotsinguks.

CREATE TABLE docs (id bigserial PRIMARY KEY, content text, embedding vector(1536));
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
04

Salvesta ja varunda andmed

Salvesta andmekaust püsivale andmekandjale, mis elab üle ka serveri taaskäivituse, ning seadista regulaarsed varukoopiad, et vältida indeksi kadumist.

$ pg_dump -Fc ragdb > ~/backups/rag-$(date +%F).dump
05

Hoia privaatsena Tailscale’iga

Vektorhoidlat ei tohi jätta avatuks avalikku internetti. Luba ligipääs ainult läbi Tailscale’i turvalise liidese.

$ sudo ufw allow in on tailscale0 to any port 8000 proto tcp

Korduvad küsimused

ChromaDB või pgvector — kumba valida? +

ChromaDB on kiireim prototüüpide ja puhtalt vektor-koormuste jaoks. Vali pgvector, kui kasutad juba PostgreSQL-i või tahad vektoreid ja relatsioonilisi andmeid ühes ACID-andmebaasis.

Kui palju ketast embedding’ud vajavad? +

Umbes dimensioonide arv korda 4 baiti vektori kohta, pluss indeksi lisakulu. 1536-dimensiooniline embedding on umbes 6 KB; miljon neist on mõni GB — mahub hõlpsalt VPS-i kettale.

Kuidas seda varundada? +

pgvector’i jaoks kasuta pg_dump ajakava alusel; ChromaDB jaoks tee persist-kaustast snapshot. Hoia koopiaid serverist väljas.

Seotud juhendid

Majuta oma RAG-stack ise

VPS ketta ja mäluga, mida privaatne vektorandmebaas vajab.

Vaata VPS pakette →