homelab-codex-ws/services/kb-postgres/init/002_chunks.sql

19 lines
996 B
MySQL
Raw Permalink Normal View History

2026-07-13 21:08:41 +02:00
-- KB spine: document_chunk — chunk-level embeddings, 1:N against envelope
-- Additive: does not modify 001_envelope.sql. envelope stays untouched.
-- Version: 002 — chunks (bge-m3 dense embeddings, dim=1024)
CREATE TABLE IF NOT EXISTS document_chunk (
id BIGSERIAL PRIMARY KEY,
envelope_id TEXT NOT NULL REFERENCES envelope(id) ON DELETE CASCADE,
chunk_index INT NOT NULL, -- order within envelope, 0-based
text TEXT NOT NULL,
embedding VECTOR(1024), -- bge-m3 dense; NULL until embedded
model TEXT NOT NULL, -- e.g. 'bge-m3' — tracks re-index on model change
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (envelope_id, chunk_index)
);
CREATE INDEX IF NOT EXISTS document_chunk_envelope_idx ON document_chunk (envelope_id);
CREATE INDEX IF NOT EXISTS document_chunk_embedding_hnsw_idx
ON document_chunk USING hnsw (embedding vector_cosine_ops);