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

  1. Usuario hace pregunta
  2. Generar embedding de la pregunta con OpenAI o Cohere
  3. Buscar top-5 chunks más similares en pgvector
  4. Insertar chunks en el contexto de Claude
  5. 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.