🗄️

Bases de Datos Vectoriales

👨‍🍳👑 Master Chef

¿Qué son las bases de datos vectoriales?

Almacenan embeddings (vectores numéricos) para búsqueda por similitud semántica.


El problema tradicional

SQL: WHERE title LIKE '%gato%'
→ Solo encuentra "gato", no "felino" ni "mascota"

Vector: embedding("gato")
→ Encuentra conceptos SIMILARES semánticamente

¿Cómo funcionan?

PasoProceso
1. EmbedTexto → Vector [0.1, 0.3, ...]
2. StoreGuardar vector en DB
3. QueryBuscar vectores similares
4. ReturnResultados por coseno/distancia

Bases de datos populares

DBTipoIdeal para
PineconeCloudProducción fácil
WeaviateSelf-hostControl total
ChromaDBLocalDesarrollo
pgvectorPostgreSQLSi ya usas Postgres
QdrantSelf-hostAlto rendimiento

Ejemplo con ChromaDB

import chromadb

# Crear cliente
client = chromadb.Client()
collection = client.create_collection("docs")

# Agregar documentos (auto-embedding)
collection.add(
    documents=["El gato duerme", "El perro corre"],
    ids=["doc1", "doc2"]
)

# Buscar similares
results = collection.query(
    query_texts=["mascota descansando"],
    n_results=1
)
# → Encuentra "El gato duerme"

Índices vectoriales

AlgoritmoVelocidadPrecisión
FlatLento100%
IVFMedio~95%
HNSWRápido~95%

Practica

Búsqueda Vectorial