📘 Manual Completo: Bases de Datos Vectoriales con Qdrant y n8n
Este manual explica de forma cronológica, didáctica y detallada cómo desplegar, conectar y aprovechar bases de datos vectoriales en local con Qdrant, integrándolas con flujos de automatización en n8n y aplicaciones de RAG (Retrieval-Augmented Generation).
1. Concepto de Base de Datos Vectorial
Una base de datos vectorial permite almacenar y consultar representaciones numéricas de datos (vectores), optimizada para la búsqueda semántica mediante distancias matemáticas (coseno, euclídea, dot product).
2. Desplegar Qdrant en local
Opción A · Docker
mkdir -p ~/qdrant_storage
docker run -d --name qdrant \
-p 6333:6333 \
-v ~/qdrant_storage:/qdrant/storage \
qdrant/qdrant:latest
# Salud
curl http://localhost:6333/readyz
Opción B · Docker Compose
version: "3.9"
services:
qdrant:
image: qdrant/qdrant:latest
ports:
- "6333:6333"
volumes:
- ./qdrant_storage:/qdrant/storage
restart: unless-stopped
Qdrant expone la API REST en http://localhost:6333.
3. Ejemplo de uso directo en Python
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams
import numpy as np
# Conexión
client = QdrantClient("http://localhost:6333")
# Crear colección
client.recreate_collection(
collection_name="demo",
vectors_config=VectorParams(size=3, distance=Distance.COSINE)
)
# Insertar puntos
vectors = [
np.array([0.1, 0.2, 0.3]),
np.array([0.9, 0.8, 0.7])
]
payload = [{"id": 1, "texto": "Hola mundo"}, {"id": 2, "texto": "Adiós mundo"}]
client.upsert(
collection_name="demo",
points=[{"id": i, "vector": v.tolist(), "payload": p} for i, (v, p) in enumerate(zip(vectors, payload), 1)]
)
# Búsqueda semántica
query = np.array([0.1, 0.2, 0.25])
hits = client.search(collection_name="demo", query_vector=query.tolist(), limit=2)
for h in hits:
print(h)
4. Flujo en n8n
- Webhook: recibe consulta del usuario.
- OpenAI: genera embedding del texto.
- HTTP Node: consulta a Qdrant con el vector.
- OpenAI GPT: genera respuesta con contexto recuperado.
- Respuesta: devuelve la contestación al usuario.
5. Variante avanzada con almacenamiento
Se añade un nodo de almacenamiento (ej. PostgreSQL, SQLite o Airtable) para guardar:
- Consultas de usuario
- Respuestas generadas
- Vectores asociados
Esto permite construir un histórico de interacciones y optimizar la base vectorial.
6. Diagramas visuales
Flujo Básico
Flujo Avanzado
Conclusión
Con este manual tienes la guía completa para:
- Entender qué es una base vectorial
- Desplegar Qdrant en local
- Ejecutar búsquedas semánticas con Python
- Integrar n8n en flujos de RAG
- Escalar con almacenamiento avanzado

Hola
Creo que hay un problema con las URLs de la imagenes
Un saludo