Configurar Qdrant
Introducción
Qdrant es una base de datos vectorial potente, especialmente indicada para proyectos RAG de mayor escala o entornos productivos. Ofrece APIs REST y gRPC, capacidades de filtrado y funciona bien en Docker. Si buscas avanzar más allá de Chroma, encontrarás en Qdrant un siguiente paso sólido.
Qué es Qdrant en pocas palabras
Qdrant almacena textos, imágenes u otros datos como vectores. Cuando realizas una búsqueda, calcula la similitud entre el vector de búsqueda y los vectores almacenados. El resultado son las entradas más relevantes, que puedes enviar a un modelo de lenguaje. Los filtros te ayudan a limitar la búsqueda a categorías, rangos de fechas u otros metadatos específicos.
Herramientas, conceptos y técnicas
- Qdrant Server - La base de datos vectorial en sí. Se ejecuta localmente en Docker o como servicio en la nube.
- Qdrant Python Client - Biblioteca oficial de Python para instancias locales y remotas.
- Qdrant REST-API - Interfaz HTTP para crear colecciones y buscar puntos.
- FastEmbed - Biblioteca de embeddings ligera que funciona bien con Qdrant.
- Collection - Contenedor para vectores de la misma dimensión y semántica similar.
- Payload - Metadatos asociados a un vector, como la fuente o categoría.
Ejemplo práctico: iniciar Qdrant en Docker
docker run -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage qdrant/qdrant
Tras el inicio, accede al panel en http://localhost:6333/dashboard. Desde allí puedes crear colecciones, cargar vectores y probar consultas de búsqueda.
Ejemplo en Python
from qdrant_client import QdrantClient
client = QdrantClient(url="http://localhost:6333")
client.create_collection(
collection_name="articulos",
vectors_config={"size": 768, "distance": "Cosine"}
)
client.upsert(
collection_name="articulos",
points=[
{
"id": 1,
"vector": [0.1, 0.2, ...], # Tu embedding
"payload": {"fuente": "blog", "titulo": "¿Qué es la IA local?"}
}
]
)
results = client.search(
collection_name="articulos",
query_vector=[0.1, 0.2, ...],
limit=3
)
print(results)
Para proyectos reales, generas los vectores con un modelo de embeddings como intfloat/multilingual-e5-large o BAAI/bge-m3. Qdrant se encarga de almacenar y buscar estos vectores.
Escollos comunes y ayuda para decidir
- Dimensión de vector incorrecta: La colección debe conocer la dimensión del modelo de embeddings. Si cambias el modelo, la colección necesita el mismo tamaño.
- Filtros de payload olvidados: Sin filtros, la búsqueda abarca todos los documentos. Con filtros de payload reduces la búsqueda, por ejemplo a
fuente == "blog". - Ubicación de almacenamiento: Por defecto, Qdrant guarda en un volumen de Docker. Para copias de seguridad, debes conocer la ruta de almacenamiento.
- ¿Cuándo usar Qdrant en lugar de Chroma? Qdrant vale la pena cuando necesitas escalar, filtrar o trabajar con múltiples clientes simultáneamente.
Información adicional y enlaces
- Qdrant está basado en REST y es fácil de automatizar.
- Las colecciones requieren un tamaño de vector fijo.
- Los filtros de payload hacen la búsqueda mucho más precisa.
- Más sobre Chroma lo encuentras en el artículo de Chroma, y más sobre embeddings en Modelos de embeddings.
Preguntas frecuentes sobre Qdrant
¿Necesito Docker para Qdrant?
No, también existen binarios puros. Pero Docker es la forma más fácil y común para pruebas locales.
¿Es Qdrant gratuito?
Sí, la versión de código abierto es gratuita. También existe una oferta de nube de pago, pero no es necesaria para proyectos locales.
¿Cuántos documentos puede gestionar Qdrant localmente?
Depende de la RAM y el espacio de almacenamiento. Qdrant es adecuado para cientos de miles hasta millones de entradas.
¿Puedo conectar Qdrant con Ollama?
Sí. Ollama proporciona el modelo de lenguaje, Qdrant la base de datos vectorial. Tu script de Python conecta ambos.
¿Cuál es la diferencia entre Qdrant y Chroma?
Chroma es más simple e ideal para prototipos. Qdrant es más robusto, escalable y ofrece mejores opciones de filtrado.
¿Qdrant soporta búsqueda híbrida?
Sí. Puedes combinar búsqueda vectorial con filtros de payload e incluso vectores dispersos para incluir términos de búsqueda clásicos.
¿Qué dimensión de embedding debo elegir?
Depende del modelo de embeddings. Por ejemplo, multilingual-e5-large proporciona 1024 dimensiones, bge-m3 también suele ser 1024.
¿Puedo ejecutar Qdrant en un NAS?
Sí, con Docker. Asegúrate de que haya suficiente RAM y almacenamiento rápido, de lo contrario la búsqueda será lenta.
¿Dónde encuentro la documentación de Qdrant?
Directamente en qdrant.tech/documentation y la referencia de API en api.qdrant.tech.
¿Cómo aseguro Qdrant?
Las instancias locales sin exposición de red suelen ser suficientes en redes seguras. Si necesitas acceso a través de la red, debes configurar un token de API o un proxy inverso con autenticación.
Fuentes
- Sitio web oficial de Qdrant
- Documentación de Qdrant
- Qdrant Python Client en GitHub
- FastEmbed en GitHub


