Infraestructura · 10 min
pgvector para RAG en producción: guía práctica
Tu base de datos ya puede hacer búsqueda semántica. No necesitás Pinecone.
Carlos Copisrad · 18 mayo 2026
RAG sin vector database dedicado
pgvector convierte a PostgreSQL en una base de datos vectorial. En Supabase está disponible como extensión nativa. Para la mayoría de los casos de uso empresariales (hasta millones de documentos), pgvector es suficiente y elimina un servicio externo del stack.
Setup inicial
-- Habilitar extensión
CREATE EXTENSION IF NOT EXISTS vector;
-- Tabla de documentos con embeddings
CREATE TABLE documentos (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
contenido TEXT NOT NULL,
embedding VECTOR(1536), -- dimensión para text-embedding-3-small
metadata JSONB,
created_at TIMESTAMPTZ DEFAULT NOW()
);
Índice HNSW para búsqueda rápida
CREATE INDEX ON documentos
USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 64);
Consulta de similitud
SELECT contenido, metadata,
1 - (embedding <=> $1::vector) AS similitud
FROM documentos
ORDER BY embedding <=> $1::vector
LIMIT 5;
Pipeline completo
- Usuario hace pregunta
- Generar embedding de la pregunta con OpenAI o Cohere
- Buscar top-5 chunks más similares en pgvector
- Insertar chunks en el contexto de Claude
- Claude responde usando solo esa información
Chunking strategy
El tamaño del chunk es crítico. Para documentos técnicos usamos 512 tokens con 50 tokens de overlap. Para documentos legales, chunking por sección semántica (párrafo legal completo) da mejores resultados que tamaño fijo.
¿Querés implementar esto en tu empresa? Escribinos. Diagnóstico de 30 minutos sin compromiso.