• О Милвусе
  • Начать
  • Концепции
  • Руководство пользователя
  • Импорт данных
  • Инструменты искусственного интеллекта
  • Руководство по администрированию
  • Инструменты
  • Интеграции
  • Учебники
  • Вопросы и ответы
  • API Reference

Интеграция Milvus с MindsDB

MindsDB - это мощный инструмент для интеграции приложений искусственного интеллекта с различными корпоративными источниками данных. Он действует как механизм федеративных запросов, который вносит порядок в разрозненные данные, скрупулезно отвечая на запросы как структурированных, так и неструктурированных данных. Независимо от того, разбросаны ли ваши данные по SaaS-приложениям, базам или хранилищам данных, MindsDB может подключить и запросить их все, используя стандартный SQL. В MindsDB реализованы самые современные автономные системы RAG через базы знаний, поддержка сотен источников данных и гибкие возможности развертывания - от локальной разработки до облачных сред.

Это руководство демонстрирует, как интегрировать Milvus с MindsDB, позволяя вам использовать возможности MindsDB в области искусственного интеллекта с функциональностью векторной базы данных Milvus через SQL-подобные операции для управления и запроса векторных вкраплений.

Это руководство в основном ссылается на официальную документацию по MindsDB Milvus Handler. Если вы найдете в этом руководстве какие-либо устаревшие части, вы можете в приоритетном порядке следовать официальной документации и создать для нас проблему.

Установите MindsDB

Прежде чем мы начнем, установите MindsDB локально через Docker или Docker Desktop.

Прежде чем продолжить, убедитесь, что вы хорошо понимаете фундаментальные концепции и операции как MindsDB, так и Milvus.

Введение аргументов

Для установления соединения необходимы следующие аргументы:

  • uri: uri для базы данных Milvus, может быть установлен в локальном файле ".db" или в докере или облачном сервисе.
  • token: токен для поддержки докера или облачного сервиса в соответствии с параметром uri

Дополнительные аргументы для установки соединения:

Они используются для запросов SELECT:

  • search_default_limit: ограничение по умолчанию, передаваемое в операторах select (по умолчанию=100)
  • search_metric_type: тип метрики, используемый для поиска (по умолчанию="L2")
  • search_ignore_growing: игнорировать ли растущие сегменты при поиске сходства (по умолчанию=False)
  • search_params: специфично для search_metric_type (по умолчанию={"nprobe": 10})

Используются для запросов CREATE:

  • create_auto_id: нужно ли автоматически генерировать id при вставке записей без ID (по умолчанию=False)
  • create_id_max_len: максимальная длина поля id при создании таблицы (по умолчанию=64)
  • create_embedding_dim: размерность встраивания при создании таблицы (по умолчанию=8)
  • create_dynamic_field: будут ли создаваемые таблицы иметь динамические поля или нет (по умолчанию=True)
  • create_content_max_len: максимальная длина столбца содержимого (по умолчанию=200)
  • create_content_default_value: значение по умолчанию для столбца содержимого (по умолчанию='')
  • create_schema_description: описание созданных схем (по умолчанию='')
  • create_alias: псевдоним созданных схем (default='default')
  • create_index_params: параметры индекса, созданного по столбцу embeddings (default={})
  • create_index_metric_type: метрика, используемая для создания индекса (default='L2')
  • create_index_type: тип индекса (по умолчанию='AUTOINDEX')

Использование

Прежде чем продолжить, убедитесь, что версия pymilvus совпадает с этой версией. Если вы обнаружите проблемы с совместимостью версий, вы можете откатить свою версию pymilvus или настроить ее в этом файле требований.

Создание соединения

Для того чтобы воспользоваться этим обработчиком и подключиться к серверу Milvus в MindsDB, можно использовать следующий синтаксис:

CREATE DATABASE milvus_datasource
WITH
  ENGINE = 'milvus',
  PARAMETERS = {
    "uri": "./milvus_local.db",
    "token": "",
    "create_embedding_dim": 3,
    "create_auto_id": true
};
  • Если вам нужна локальная векторная база данных только для небольшого масштаба данных или прототипирования, установка uri в качестве локального файла, например./milvus.db, является наиболее удобным методом, так как он автоматически использует Milvus Lite для хранения всех данных в этом файле.
  • Для работы с большими объемами данных и трафика в производстве вы можете настроить сервер Milvus на Docker или Kubernetes. При такой настройке используйте адрес и порт сервера в качестве uri, напримерhttp://localhost:19530. Если вы включите функцию аутентификации на Milvus, установите token как "<your_username>:<your_password>", в противном случае устанавливать токен не нужно.
  • Вы также можете использовать полностью управляемый Milvus в Zilliz Cloud. Просто установите uri и token в качестве публичной конечной точки и ключа API вашего экземпляра Zilliz Cloud.

Сброс соединения

Чтобы сбросить соединение, используйте эту команду.

DROP DATABASE milvus_datasource;

Создание таблиц

Чтобы вставить данные из уже существующей таблицы, используйте команду CREATE

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

Сбрасывание коллекций

Сброс коллекции не поддерживается

Запрос и выборка

Чтобы запросить базу данных с помощью вектора поиска, можно использовать search_vector в предложении WHERE.

Оговорки:

  • Если вы опустите LIMIT, то будет использоваться search_default_limit, так как Milvus требует этого.
  • Колонка метаданных не поддерживается, но если в коллекции включена динамическая схема, вы можете делать запросы как обычно, см. пример ниже.
  • Динамические поля не могут быть отображены, но могут быть запрошены
SELECT * from milvus_datasource.test
WHERE search_vector = '[3.0, 1.0, 2.0, 4.5]'
LIMIT 10;

Если вы опустите search_vector, это станет базовым поиском, и будет возвращено LIMIT или search_default_limit количество записей в коллекции.

SELECT * from milvus_datasource.test

Вы можете использовать предложение WHERE для динамических полей, как в обычном SQL.

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

Удаление записей

Вы можете удалять записи с помощью DELETE, как и в SQL.

Оговорки:

  • Milvus поддерживает удаление сущностей только с четко определенными первичными ключами.
  • Вы можете использовать только оператор IN.
DELETE FROM milvus_datasource.test
WHERE id IN (1, 2, 3);

Вставка записей

Вы также можете вставлять отдельные строки, как показано ниже:

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

Обновление

Обновление записей не поддерживается Milvus API. Вы можете попробовать использовать комбинацию DELETE и INSERT


Для получения более подробной информации и примеров, пожалуйста, обратитесь к официальной документации MindsDB.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?