• Acerca de Milvus
  • Comenzar
  • Conceptos
  • Guía del usuario
  • Importación de datos
  • Herramientas de IA
  • Guía de administración
  • Herramientas
  • Integraciones
  • Tutoriales
  • Preguntas frecuentes
  • API Reference

Integrar Milvus con MindsDB

MindsDB es una potente herramienta para integrar aplicaciones de IA con diversas fuentes de datos empresariales. Actúa como un motor de consulta federado que pone orden en la dispersión de datos al tiempo que responde meticulosamente a las consultas a través de datos estructurados y no estructurados. Tanto si sus datos están dispersos en aplicaciones SaaS, bases de datos o almacenes de datos, MindsDB puede conectarlos y consultarlos todos utilizando SQL estándar. Cuenta con sistemas RAG autónomos de última generación a través de Bases de Conocimiento, soporta cientos de fuentes de datos, y proporciona opciones flexibles de despliegue desde el desarrollo local hasta entornos en la nube.

Este tutorial demuestra cómo integrar Milvus con MindsDB, permitiéndole aprovechar las capacidades de IA de MindsDB con la funcionalidad de base de datos vectorial de Milvus a través de operaciones similares a SQL para gestionar y consultar incrustaciones vectoriales.

Este tutorial se refiere principalmente a la documentación oficial del MindsDB Milvus Handler. Si encuentra alguna parte obsoleta en este tutorial, puede dar prioridad a seguir la documentación oficial y crear un problema para nosotros.

Instalar MindsDB

Antes de empezar, instala MindsDB localmente vía Docker o Docker Desktop.

Antes de continuar, asegúrese de tener una sólida comprensión de los conceptos y operaciones fundamentales tanto de MindsDB como de Milvus.

Introducción de Argumentos

Los argumentos necesarios para establecer una conexión son:

  • uri: uri para la base de datos milvus, puede establecerse en el archivo local ".db" o en el servicio docker o en la nube
  • token: token para soportar docker o servicio en la nube según la opción uri

Los argumentos opcionales para establecer una conexión son:

Se utilizan para las consultas SELECT:

  • search_default_limit: límite por defecto a pasar en sentencias select (por defecto=100)
  • search_metric_type: tipo de métrica utilizada para las búsquedas (por defecto="L2")
  • search_ignore_growingsi se deben ignorar los segmentos en crecimiento durante las búsquedas de similitud (por defecto = False)
  • search_params: específico de search_metric_type (por defecto={"nprobe": 10})

Se utilizan para las consultas de CREATE:

  • create_auto_id: si se debe generar automáticamente el identificador al insertar registros sin identificador (por defecto=False)
  • create_id_max_lenlongitud máxima del campo de identificación al crear una tabla (por defecto = 64)
  • create_embedding_dimdimensión de incrustación para crear una tabla (por defecto = 8)
  • create_dynamic_field: si las tablas creadas tienen o no campos dinámicos (por defecto=True)
  • create_content_max_lenLongitud máxima de la columna de contenido (por defecto = 200)
  • create_content_default_valuevalor por defecto de la columna de contenido (por defecto='')
  • create_schema_descriptiondescripción de los esquemas creados (por defecto ='')
  • create_aliasalias de los esquemas creados (por defecto='por defecto')
  • create_index_paramsparámetros del índice creado en la columna de incrustaciones (por defecto = {})
  • create_index_metric_typemétrica utilizada para crear el índice (por defecto = 'L2')
  • create_index_type: tipo de índice (por defecto='AUTOINDEX')

Utilización

Antes de continuar, asegúrese de que la versión de pymilvus es la misma que esta versión anclada. Si encuentra algún problema con la compatibilidad de versiones, puede hacer retroceder su versión de pymilvus, o personalizarla en este archivo de requisitos.

Creación de la conexión

Para hacer uso de este manejador y conectarse a un servidor Milvus en MindsDB, se puede utilizar la siguiente sintaxis:

CREATE DATABASE milvus_datasource
WITH
  ENGINE = 'milvus',
  PARAMETERS = {
    "uri": "./milvus_local.db",
    "token": "",
    "create_embedding_dim": 3,
    "create_auto_id": true
};
  • Si sólo necesita una base de datos vectorial local para datos a pequeña escala o prototipos, establecer la uri como un archivo local, por ejemplo./milvus.db, es el método más conveniente, ya que utiliza automáticamente Milvus Lite para almacenar todos los datos en este archivo.
  • Para datos a mayor escala y tráfico en producción, puede configurar un servidor Milvus en Docker o Kubernetes. En esta configuración, por favor utilice la dirección del servidor y el puerto como su uri, por ejemplohttp://localhost:19530. Si habilita la función de autenticación en Milvus, configure el token como "<your_username>:<your_password>", de lo contrario no es necesario configurar el token.
  • También puede utilizar Milvus totalmente gestionado en Zilliz Cloud. Simplemente configure uri y token con el punto final público y la clave API de su instancia de Zilliz Cloud.

Desconexión

Para eliminar la conexión, utilice este comando

DROP DATABASE milvus_datasource;

Creación de tablas

Para insertar datos de una tabla preexistente, utilice CREATE

CREATE TABLE milvus_datasource.test
(SELECT * FROM sqlitedb.test);

Eliminación de colecciones

No es posible eliminar una colección

Consulta y selección

Para consultar la base de datos mediante un vector de búsqueda, puede utilizar search_vector en la cláusula WHERE

Advertencia:

  • Si omite LIMIT, se utiliza search_default_limit, ya que Milvus lo requiere.
  • No se admite la columna de metadatos, pero si la colección tiene habilitado el esquema dinámico, puede realizar la consulta de forma normal, véase el ejemplo siguiente
  • Los campos dinámicos no se pueden mostrar pero se pueden consultar
SELECT * from milvus_datasource.test
WHERE search_vector = '[3.0, 1.0, 2.0, 4.5]'
LIMIT 10;

Si omite search_vector, se convierte en una búsqueda básica y se devuelve LIMIT o search_default_limit cantidad de entradas de la colección

SELECT * from milvus_datasource.test

Puede utilizar la cláusula WHERE en los campos dinámicos como en SQL normal.

SELECT * FROM milvus_datasource.createtest
WHERE category = "science";

Eliminación de registros

Puede borrar entradas utilizando DELETE como en SQL.

Advertencias:

  • Milvus sólo admite la eliminación de entidades con claves primarias claramente especificadas
  • Sólo puede utilizar el operador IN
DELETE FROM milvus_datasource.test
WHERE id IN (1, 2, 3);

Inserción de registros

También puede insertar filas individuales de esta forma:

INSERT INTO milvus_test.testable (id,content,metadata,embeddings)
VALUES ("id3", 'this is a test', '{"test": "test"}', '[1.0, 8.0, 9.0]');

Actualización

La API de Milvus no admite la actualización de registros. Puede intentar usar una combinación de DELETE y INSERT


Para más detalles y ejemplos, consulte la Documentación Oficial de MindsDB.