pgVector es una extensión open-source de PostgreSQL para vectores de alta dimensión y búsqueda
por similitud. Permite usar PostgreSQL como base de datos vectorial sin sistemas adicionales
como Pinecone o Weaviate.
¿Por qué importa? La mayoría de empresas ya tiene PostgreSQL en producción.
Con pgVector, implementan RAG y búsqueda semántica sin añadir complejidad operacional ni costos
adicionales de infraestructura.
Capacidades:
Docker (más rápido):
docker run -e POSTGRES_PASSWORD=password -p 5432:5432 ankane/pgvector
Ubuntu/Debian:
sudo apt install postgresql-15-pgvector
psql -c "CREATE EXTENSION IF NOT EXISTS vector;"
pgVector usa operadores especiales para búsqueda:
Para colecciones grandes (>100K vectores), el índice HNSW permite búsquedas aproximadas
en milisegundos:
Parámetros clave:
m=16, ef_construction=128 es un buen punto de partida.
-- pgVector: crear tabla y buscar embeddings similares
CREATE EXTENSION IF NOT EXISTS vector;
-- Tabla de documentos con embeddings
CREATE TABLE documentos (
id BIGSERIAL PRIMARY KEY,
titulo TEXT NOT NULL,
contenido TEXT,
categoria VARCHAR(50),
embedding vector(1536),
creado_en TIMESTAMPTZ DEFAULT NOW()
);
-- Indice HNSW para busqueda rapida
CREATE INDEX ON documentos
USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 128);
-- Busqueda semantica: top-5 mas similares filtrando por categoria
SELECT titulo, categoria,
1 - (embedding <=> '[0.031, -0.401, ...]'::vector) AS similitud
FROM documentos
WHERE categoria = 'RRHH'
ORDER BY embedding <=> '[0.031, -0.401, ...]'::vector
LIMIT 5;
-- Python: insertar embedding generado con OpenAI
import psycopg2
from openai import OpenAI
def indexar_documento(titulo, contenido, categoria, conn):
client = OpenAI()
embedding = client.embeddings.create(
model="text-embedding-3-small",
input=contenido
).data[0].embedding
with conn.cursor() as cur:
cur.execute(
"INSERT INTO documentos (titulo, contenido, categoria, embedding) VALUES (%s,%s,%s,%s)",
(titulo, contenido, categoria, embedding)
)
conn.commit()Carlos Montiel es arquitecto de soluciones IA empresarial con experiencia en LLMs, Agentes, RAG y orquestación en Guatemala y Latinoamérica.
Contactar a Carlos Montiel