включает в себя: интеграцию хостинга и Client интеграцию
Milvus — это система базы данных с открытым исходным кодом, которая эффективно хранит, индексы и выполняет поиск крупномасштабных векторных данных. Он часто используется в машинном обучении, искусственном интеллекте и приложениях для обработки и анализа данных.
Векторные данные кодируют сведения в виде математических векторов, которые являются массивами чисел или координат. Системы машинного обучения и искусственного интеллекта часто используют векторы для представления неструктурированных объектов, таких как изображения, текст, звук или видео. Каждое измерение в векторе описывает определенную характеристику объекта. Сравнивая их, системы могут классифицировать, искать и определять кластеры объектов.
Из этой статьи вы узнаете, как использовать интеграцию .NET AspireMilvus базы данных. Интеграция .NET AspireMilvus базы данных позволяет подключаться к существующим базам данных Milvus или создавать новые экземпляры с помощью образа контейнера milvusdb/milvus.
В проекте узла приложения вызовите AddMilvus, чтобы добавить и вернуть построитель ресурсов Milvus. Свяжите вызов конструктора возвращаемого ресурса с AddDatabase, чтобы добавить ресурс базы данных Milvus.
C#
var builder = DistributedApplication.CreateBuilder(args);
var milvus = builder.AddMilvus("milvus")
.WithLifetime(ContainerLifetime.Persistent);
var milvusdb = milvus.AddDatabase("milvusdb");
builder.AddProject<Projects.ExampleProject>()
.WithReference(milvusdb)
.WaitFor(milvusdb);
// After adding all resources, run the app...
Примечание
Контейнер Milvus может быть медленным, поэтому рекомендуется использовать постоянное время существования, чтобы избежать ненужных перезапусков. Для получения дополнительной информации см. Срок службы ресурса контейнера.
Когда .NET.NET Aspire добавляет контейнерный образ в узел приложения, как показано в предыдущем примере с контейнерным образом milvusdb/milvus, он создает новый экземпляр Milvus на локальном компьютере. Ссылку на конструктор ресурсов Milvus (переменная milvus) используют для добавления базы данных. База данных называется milvusdb, а затем добавляется в ExampleProject.
Метод WithReference настраивает подключение в ExampleProject с именем milvusdb.
Обработка учетных данных и передача других параметров для ресурса Milvus
Ресурс Milvus включает учетные данные по умолчанию с usernameroot и паролем Milvus.
Milvus поддерживает пароли по умолчанию на основе конфигурации с помощью переменной среды COMMON_SECURITY_DEFAULTROOTPASSWORD. Чтобы изменить пароль по умолчанию в контейнере, передайте параметр apiKey при вызове API размещения AddMilvus:
C#
var apiKey = builder.AddParameter("apiKey", secret: true);
var milvus = builder.AddMilvus("milvus", apiKey);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(milvus);
Приведенный выше код получает параметр для передачи в API AddMilvus и внутренне назначает параметр переменной среды COMMON_SECURITY_DEFAULTROOTPASSWORD контейнера Milvus. Параметр apiKey обычно указывается как секрет пользователя:
Чтобы добавить том данных в ресурс службы Milvus, вызовите метод WithDataVolume в ресурсе Milvus:
C#
var builder = DistributedApplication.CreateBuilder(args);
var milvus = builder.AddMilvus("milvus")
.WithDataVolume();
var milvusdb = milvus.AddDatabase("milvusdb");
builder.AddProject<Projects.ExampleProject>()
.WithReference(milvusdb)
.WaitFor(milvusdb);
// After adding all resources, run the app...
Том данных используется для сохранения Milvus данных за пределами жизненного цикла контейнера. Том данных подключается по пути /var/lib/milvus в контейнере SQL Server, а если параметр name не указан, имя генерируется случайным образом. Дополнительные сведения об объемах данных и о том, почему они предпочтительнее связанных монтирований, см. в документации о Docker томах.
Добавление ресурса Milvus с подключением привязки данных
Чтобы добавить привязку данных к ресурсу Milvus, вызовите метод WithDataBindMount:
C#
var builder = DistributedApplication.CreateBuilder(args);
var milvus = builder.AddMilvus("milvus")
.WithDataBindMount(source: @"C:\Milvus\Data");
var milvusdb = milvus.AddDatabase("milvusdb");
builder.AddProject<Projects.ExampleProject>()
.WithReference(milvusdb)
.WaitFor(milvusdb);
// After adding all resources, run the app...
Важно!
Подключения привязки данных имеют ограниченные функциональные возможности по сравнению с томами, которые обеспечивают более высокую производительность, переносимость и безопасность, что делает их более подходящими для рабочих сред. Однако привязываемые подключения позволяют напрямую получать доступ к файлам и изменять их на хост-системе, что идеально подходит для разработки и тестирования, где требуются изменения в режиме реального времени.
Монтажи данных зависят от файловой системы хост-компьютера для сохранения данных Milvus между перезагрузками контейнера. Монтирование папки с данными выполняется по пути к C:\Milvus\Data в Windows (или /Milvus/Data на Unix) на хост-компьютере внутри контейнера Milvus. Дополнительные сведения о маунтах привязки данных см. в документации: Docker маунты.
Создание ресурса Attu
Attu — это графический пользовательский интерфейс (GUI) и средство управления, предназначенное для взаимодействия с Milvus и ее базами данных. Он включает широкие возможности визуализации, которые помогут вам изучить и понять векторные данные.
Если вы хотите использовать Attu для управления Milvus в решении .NET Aspire, вызовите метод расширения WithAttu в ресурсе Milvus. Метод создает контейнер из образа zilliz/attu:
C#
var builder = DistributedApplication.CreateBuilder(args);
var milvus = builder.AddMilvus("milvus")
.WithAttu()
.WithLifetime(ContainerLifetime.Persistent);
var milvusdb = milvus.AddDatabase("milvusdb");
builder.AddProject<Projects.ExampleProject>()
.WithReference(milvusdb)
.WaitFor(milvusdb);
// After adding all resources, run the app...
При отладке решения .NET.NET Aspire вы увидите контейнер Attu, указанный в ресурсах решения. Выберите конечную точку ресурса, чтобы открыть графический интерфейс и начать управление базами данных.
интеграция Client (предварительная версия)
Чтобы приступить к работе с интеграцией клиента .NET AspireMilvus, установите пакет NuGet 📦Aspire.Milvus.Client в проекте, использующем клиент, который является проектом для приложения, использующего клиент базы данных Milvus. Интеграция клиента Milvus регистрирует экземпляр Milvus.Client.MilvusClient, который можно использовать для взаимодействия с базами данных Milvus.
В файле Program.cs проекта, используемого клиентом, вызовите метод расширения AddMilvusClient для любой IHostApplicationBuilder, чтобы зарегистрировать MilvusClient для использования с помощью контейнера внедрения зависимостей. Метод принимает параметр имени подключения.
C#
builder.AddMilvusClient("milvusdb");
Совет
Параметр connectionName должен соответствовать имени, используемому при добавлении ресурса базы данных Milvus в проект узла приложения. Другими словами, при вызове AddDatabase и указании имени milvusdb то же имя следует использовать при вызове AddMilvusClient. Дополнительные сведения см. в Добавить ресурс сервера Milvus и ресурс базы данных.
Затем можно получить экземпляр MilvusClient с помощью внедрения зависимостей. Например, чтобы получить подключение из примера сервиса:
C#
publicclassExampleService(MilvusClient client)
{
// Use the Milvus Client...
}
Могут возникнуть ситуации, когда требуется зарегистрировать несколько экземпляров MilvusClient с различными именами подключений. Чтобы зарегистрировать клиентов с ключами Milvus, вызовите метод AddKeyedMilvusClient.
Интеграция клиента .NET AspireMilvus предоставляет несколько вариантов настройки подключения к Milvus на основе требований и соглашений проекта.
Совет
Используется по умолчанию root, а пароль по умолчанию — Milvus. Для настройки другого пароля в контейнере Milvus см. раздел Обработка учетных данных и передача других параметров для ресурса Milvus. Используйте следующие методы, чтобы настроить использование клиентских приложений в решении .NET.NET Aspire с тем же паролем или другими параметрами.
Используйте строку подключения
При использовании строки подключения из раздела конфигурации ConnectionStrings можно указать имя строки подключения при вызове builder.AddMilvusClient():
C#
builder.AddMilvusClient("milvus");
Затем строка подключения будет извлечена из раздела конфигурации ConnectionStrings:
По умолчанию MilvusClient использует конечную точку API gRPC.
Использование поставщиков конфигураций
Интеграция клиента .NET AspireMilvus поддерживает Microsoft.Extensions.Configuration. Он загружает MilvusClientSettings из конфигурации, используя ключ Aspire:Milvus:Client. Следующий фрагмент кода является примером appsettings.json, который настраивает некоторые параметры:
Кроме того, можно передать делегат Action<MilvusSettings> configureSettings, чтобы настроить некоторые или все встроенные параметры, например задать ключ API из кода:
Использует настроенный клиент для выполнения HealthAsync. Если результат является положительным, проверка состояния считается успешной, в противном случае она считается неуспешной. Аналогично, если возникает ошибочное исключение, проверка работоспособности считается неработоспособной, и ошибка распространяется через сбой проверки работоспособности.
Наблюдаемость и телеметрия
.NET
.NET Aspire интеграции автоматически настраивают конфигурации логирования, трассировки и метрик, которые иногда называются столпами наблюдаемости. Дополнительные сведения об наблюдаемости интеграции и телеметрии см. в .NET.NET Aspire обзоре интеграции. В зависимости от резервной службы некоторые интеграции могут поддерживать только некоторые из этих функций. Например, некоторые интеграции поддерживают ведение журнала и трассировку, но не метрики. Функции телеметрии также можно отключить с помощью методов, представленных в разделе конфигурации .
Лесозаготовка
Интеграция базы данных .NET AspireMilvus использует стандартное ведение журнала .NET, и вы увидите записи журнала из следующей категории:
Milvus.Client
Трассировка
Интеграция базы данных .NET AspireMilvus в настоящее время не генерирует трассировочные действия, поскольку они не поддерживаются библиотекой Milvus.Client.
Метрика
Интеграция базы данных .NET AspireMilvus в настоящее время не выдает метрики, так как они не поддерживаются библиотекой Milvus.Client.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET Aspire
.NET Aspire — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Узнайте о системах баз данных, к которым может подключаться .NET Aspire с помощью встроенных компонентов. Затем вы узнаете, как настроить подключения и хранить данные в реляционных и нереляционных базах данных.
Создавайте эффективные запросы, создавайте политики индексирования, управляйте и подготавливайте ресурсы в API SQL и пакете SDK с помощью Microsoft Azure Cosmos DB.