Embeddings y bases de datos vectoriales: guía práctica

Qué son los embeddings

Un embedding es un vector numérico que captura el significado de un texto. “Rey” y “monarca” tienen vectores cercanos; “rey” y “bicicleta” están lejos. Esto permite buscar por significado en vez de por palabras exactas.

Modelos de embeddings

OpenAI text-embedding-3-small: 1536 dimensiones, $0.02/M tokens. nomic-embed-text (local): 768 dimensiones, gratis con Ollama. sentence-transformers: variedad de modelos open source en HuggingFace.

Bases de datos vectoriales

Qdrant: de código abierto, autoalojable, alto rendimiento. Ideal para producción.

Chroma: simple, embebido en Python. Ideal para prototipos.

pgvector: extensión de PostgreSQL. Si ya usas Postgres (Supabase), no necesitas otro servicio.

Pinecone: gestionado, sin operaciones. Caro pero fácil.

Pipeline RAG con embeddings

  1. Cargar documentos. 2. Dividir en fragmentos (500-1000 tokens). 3. Generar embeddings por chunk. 4. Indexar en vector DB. 5. Query: embedding de la pregunta → búsqueda por similitud → top-K chunks → LLM genera respuesta con contexto.

Ejemplo con Ollama + Qdrant

import requests
from qdrant_client import QdrantClient

# Embedding local (gratis)
resp = requests.post("http://localhost:11434/api/embeddings",
    json={"model": "nomic-embed-text", "prompt": "texto"})
vector = resp.json()["embedding"]

# Indexar en Qdrant
client = QdrantClient(host="localhost", port=6333)
client.upsert(collection_name="docs",
    points=[PointStruct(id=1, vector=vector, payload={"text": "texto"})])

Artículos relacionados

Aprende con el curso de IAcademy

Practica lo que has leído con lecciones y retos guiados.

Ir al módulo

Descarga la guía maestra de Claude (gratis)

Prompts avanzados, workflows y atajos que no encontrarás en la documentación oficial. PDF directo a tu email.