integrasi database .NET AspireMilvus
Meliputi: integrasi hosting dan integrasi
Client
Milvus adalah sistem database vektor sumber terbuka yang secara efisien menyimpan, mengindeks, dan mencari data vektor skala besar. Ini umumnya digunakan dalam pembelajaran mesin, kecerdasan buatan, dan aplikasi ilmu data.
Data vektor mengodekan informasi sebagai vektor matematika, yang merupakan array angka atau koordinat. Pembelajaran mesin dan sistem AI sering menggunakan vektor untuk mewakili objek yang tidak terstruktur seperti gambar, teks, audio, atau video. Setiap dimensi dalam vektor menjelaskan karakteristik objek tertentu. Dengan membandingkannya, sistem dapat mengklasifikasikan, mencari, dan mengidentifikasi kluster objek.
Dalam artikel ini, Anda mempelajari cara menggunakan integrasi database .NET AspireMilvus. Integrasi database .NET AspireMilvus memungkinkan Anda menyambungkan ke database Milvus yang ada atau membuat instans baru dengan gambar kontainer milvusdb/milvus
.
Integrasi hosting
Integrasi hosting database Milvus memodelkan server sebagai jenis MilvusServerResource dan database sebagai jenis MilvusDatabaseResource. Untuk mengakses jenis dan API ini, tambahkan paket NuGet 📦Aspire.Hosting.Milvus di proyek host aplikasi .
dotnet add package Aspire.Hosting.Milvus
Untuk informasi selengkapnya, lihat dotnet menambahkan paket atau Mengelola dependensi paket di aplikasi .NET.
Menambahkan sumber daya server dan database Milvus
Di proyek host aplikasi Anda, panggil AddMilvus untuk menambahkan dan mengembalikan pembangun sumber daya Milvus. Rangkaikan panggilan ke pembangun sumber daya yang dikembalikan ke AddDatabase untuk menambahkan sumber daya database Milvus.
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...
Nota
Kontainer Milvus bisa lambat untuk memulai, jadi yang terbaik adalah menggunakan masa hidup persisten untuk menghindari restart yang tidak perlu. Untuk informasi selengkapnya, lihat umur sumber daya kontainer.
Saat .NET.NET Aspire menambahkan gambar kontainer ke host aplikasi, seperti yang ditunjukkan dalam contoh sebelumnya dengan gambar milvusdb/milvus
, gambar tersebut membuat instans Milvus baru di komputer lokal Anda. Referensi ke penyusun sumber daya Milvus Anda (variabel milvus
) digunakan untuk menambahkan database. Database diberi nama milvusdb
lalu ditambahkan ke ExampleProject
.
Metode WithReference mengonfigurasi koneksi di ExampleProject
bernama milvusdb
.
Tips
Jika Anda lebih suka menyambungkan ke server Milvus yang sudah ada, panggil AddConnectionString sebagai gantinya. Untuk informasi selengkapnya, lihat referensi sumber daya yang ada.
Menangani kredensial dan meneruskan parameter lain untuk sumber daya Milvus
Sumber daya Milvus mencakup kredensial default dengan username
root
dan kata sandi Milvus
.
Milvus mendukung kata sandi default berbasis konfigurasi dengan menggunakan variabel lingkungan COMMON_SECURITY_DEFAULTROOTPASSWORD
. Untuk mengubah kata sandi default dalam kontainer, berikan parameter apiKey
saat memanggil API hosting AddMilvus
:
var apiKey = builder.AddParameter("apiKey", secret: true);
var milvus = builder.AddMilvus("milvus", apiKey);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(milvus);
Kode sebelumnya mendapatkan parameter untuk diteruskan ke API AddMilvus
, dan secara internal menetapkan parameter ke variabel lingkungan COMMON_SECURITY_DEFAULTROOTPASSWORD
kontainer Milvus. Parameter apiKey
biasanya ditentukan sebagai rahasia pengguna :
{
"Parameters": {
"apiKey": "Non-default-P@ssw0rd"
}
}
Untuk informasi selengkapnya, lihat Parameter eksternal.
Tambahkan sumber daya Milvus dengan volume data
Untuk menambahkan volume data ke sumber daya layanan Milvus, panggil metode WithDataVolume pada sumber daya Milvus:
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...
Volume data digunakan untuk mempertahankan data Milvus di luar siklus hidup kontainernya. Volume data dipasang di jalur /var/lib/milvus
di kontainer SQL Server dan ketika parameter name
tidak disediakan, nama dihasilkan secara acak. Untuk informasi selengkapnya tentang volume data dan detail mengapa mereka lebih disukai daripada bind mount, silakan lihat dokumen Docker: Volume.
Menambahkan sumber daya Milvus dengan pemasangan ikatan data
Untuk menambahkan pemasangan ikatan data ke sumber daya Milvus, panggil metode WithDataBindMount:
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...
Penting
Bind mount data memiliki fungsionalitas terbatas dibandingkan dengan volume, yang menawarkan performa, portabilitas, dan keamanan yang lebih baik, membuatnya lebih cocok untuk lingkungan produksi. Namun, bind mount memungkinkan akses langsung dan modifikasi file pada sistem host, yang ideal untuk pengembangan dan pengujian di mana perubahan real-time diperlukan.
Data bind mounts mengandalkan sistem file mesin host untuk mempertahankan data Milvus saat kontainer di-restart. Pemasangan ikatan data dipasang di C:\Milvus\Data
pada jalur Windows (atau /Milvus/Data
pada Unix) pada komputer host di kontainer Milvus. Untuk informasi selengkapnya tentang pemasangan ikatan data, lihat dokumen Docker: Pemasangan ikatan.
Membuat sumber daya Attu
Attu adalah antarmuka pengguna grafis (GUI) dan alat manajemen yang dirancang untuk berinteraksi dengan Milvus dan databasenya. Ini termasuk fitur visualisasi kaya yang dapat membantu Anda menyelidiki dan memahami data vektor Anda.
Jika Anda ingin menggunakan Attu untuk mengelola Milvus dalam solusi .NET Aspire Anda, panggil metode ekstensi WithAttu pada sumber daya Milvus Anda. Metode ini membuat kontainer dari gambar zilliz/attu
:
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...
Saat men-debug solusi .NET.NET Aspire, Anda akan melihat kontainer Attu yang tercantum dalam sumber daya solusi. Pilih titik akhir sumber daya untuk membuka GUI dan mulai mengelola database.
integrasi Client (Pratinjau)
Untuk memulai integrasi klien .NET AspireMilvus, instal paket NuGet 📦Aspire.Milvus.Client dalam proyek yang menggunakan klien, yaitu proyek untuk aplikasi yang menggunakan klien database Milvus. Integrasi klien Milvus mendaftarkan instans MilvusClient Milvus.Client. yang dapat Anda gunakan untuk berinteraksi dengan database Milvus.
dotnet add package Aspire.Milvus.Client
Menambahkan klien Milvus
Dalam file Program.cs proyek klien yang menggunakan, panggil metode ekstensi AddMilvusClient pada IHostApplicationBuilder apa pun untuk mendaftarkan MilvusClient
agar bisa digunakan melalui kontainer injeksi dependensi. Metode ini mengambil parameter nama koneksi.
builder.AddMilvusClient("milvusdb");
Tips
Parameter connectionName
harus cocok dengan nama yang digunakan saat menambahkan sumber daya database Milvus dalam proyek host aplikasi. Dengan kata lain, ketika Anda memanggil AddDatabase
dan memberikan nama milvusdb
nama yang sama harus digunakan saat memanggil AddMilvusClient
. Untuk informasi selengkapnya, lihat Menambahkan sumber daya server Milvus dan sumber daya database.
Anda kemudian dapat mengambil instans MilvusClient
menggunakan injeksi dependensi. Misalnya, untuk mengambil koneksi dari layanan contoh:
public class ExampleService(MilvusClient client)
{
// Use the Milvus Client...
}
Untuk informasi selengkapnya tentang injeksi dependensi, baca .NET injeksi dependensi.
Tambahkan klien dengan kunci Milvus
Mungkin ada situasi di mana Anda ingin mendaftarkan beberapa instans MilvusClient
dengan nama koneksi yang berbeda. Untuk mendaftarkan klien yang dikunci Milvus, panggil metode AddKeyedMilvusClient:
builder.AddKeyedMilvusClient(name: "mainDb");
builder.AddKeyedMilvusClient(name: "loggingDb");
Penting
Saat menggunakan layanan berbasis kunci, diharapkan sumber daya Milvus Anda mengonfigurasi dua basis data bernama, satu untuk mainDb
dan satu untuk loggingDb
.
Kemudian Anda dapat mengakses instans MilvusClient
menggunakan injeksi dependensi. Misalnya, untuk mengambil koneksi dari layanan contoh:
public class ExampleService(
[FromKeyedServices("mainDb")] MilvusClient mainDbClient,
[FromKeyedServices("loggingDb")] MilvusClient loggingDbClient)
{
// Use clients...
}
Untuk informasi selengkapnya tentang layanan berdasarkan kunci, lihat .NET injeksi ketergantungan: Layanan berdasarkan kunci.
Konfigurasi
Integrasi klien .NET AspireMilvus menyediakan beberapa opsi untuk mengonfigurasi koneksi ke Milvus berdasarkan persyaratan dan konvensi proyek Anda.
Tips
Penggunaan default adalah root
dan kata sandi default Milvus
. Untuk mengonfigurasi kata sandi yang berbeda dalam kontainer Milvus, lihat Menangani kredensial dan meneruskan parameter lain untuk sumber daya Milvus. Gunakan teknik berikut untuk mengonfigurasi penggunaan aplikasi klien dalam solusi .NET.NET Aspire Anda dengan kata sandi yang sama atau pengaturan lainnya.
Menggunakan string koneksi
Saat menggunakan string koneksi dari bagian konfigurasi ConnectionStrings
, Anda dapat memberikan nama string koneksi saat memanggil builder.AddMilvusClient()
:
builder.AddMilvusClient("milvus");
Dan kemudian string koneksi akan diambil dari bagian konfigurasi ConnectionStrings
:
{
"ConnectionStrings": {
"milvus": "Endpoint=http://localhost:19530/;Key=root:Non-default-P@ssw0rd"
}
}
Secara default, MilvusClient
menggunakan titik akhir API gRPC.
Menggunakan penyedia konfigurasi
Integrasi klien .NET AspireMilvus mendukung Microsoft.Extensions.Configuration. Ini memuat MilvusClientSettings dari konfigurasi dengan menggunakan kunci Aspire:Milvus:Client
. Cuplikan berikut adalah contoh appsettings.json yang mengonfigurasi beberapa opsi:
{
"Aspire": {
"Milvus": {
"Client": {
"Endpoint": "http://localhost:19530/",
"Database": "milvusdb",
"Key": "root:Non-default-P@ssw0rd",
"DisableHealthChecks": false
}
}
}
}
Untuk skema Milvus integrasi klien JSON lengkap, lihat Aspire.Milvus.Client/ConfigurationSchema.json.
Menggunakan delegasi sebaris
Anda juga dapat menggunakan delegate Action<MilvusSettings> configureSettings
untuk menyiapkan beberapa atau seluruh opsi secara sebaris, misalnya mengatur kunci API menggunakan kode.
builder.AddMilvusClient(
"milvus",
static settings => settings.Key = "root:Non-default-P@ssw0rd");
Client pemeriksaan kesehatan integrasi
Secara default, integrasi .NET.NET Aspire memungkinkan pemeriksaan kesehatan untuk semua layanan. Untuk informasi selengkapnya, lihat gambaran umum integrasi .NET.NET Aspire.
Integrasi database .NET AspireMilvus:
- Menambahkan pemeriksaan status kesehatan saat MilvusClientSettings.DisableHealthChecks
false
, yang mencoba menyambungkan ke server Milvus. - Untuk melakukan
HealthAsync
, gunakan klien yang sudah dikonfigurasi. Jika hasilnya sehat, pemeriksaan kesehatan dianggap sehat, jika tidak, itu tidak sehat. Begitu juga, jika ada pengecualian, pemeriksaan kesehatan dianggap tidak sehat karena kesalahan tersebut menyebar melalui kegagalan pemeriksaan kesehatan.
Pengamatan dan telemetri
.NET
.NET Aspire integrasi secara otomatis menyiapkan konfigurasi Pengelogan, Pelacakan, dan Metrik, yang terkadang dikenal sebagai pilar pengamatan. Untuk informasi selengkapnya tentang pengamatan integrasi dan telemetri, lihat gambaran umum integrasi .NET.NET Aspire. Bergantung pada layanan pendukung, beberapa integrasi mungkin hanya mendukung beberapa fitur ini. Misalnya, beberapa integrasi mendukung pengelogan dan pelacakan, tetapi bukan metrik. Fitur telemetri juga dapat dinonaktifkan menggunakan teknik yang disajikan di bagian Konfigurasi
Pencatatan
Integrasi database .NET AspireMilvus menggunakan pengelogan .NET standar, dan Anda akan melihat entri log dari kategori berikut:
Milvus.Client
Menelusuri
Integrasi database .NET AspireMilvus saat ini tidak memancarkan aktivitas pelacakan karena tidak didukung oleh pustaka Milvus.Client
.
Metrik
Integrasi database .NET AspireMilvus saat ini tidak memancarkan metrik karena tidak didukung oleh pustaka Milvus.Client
.
Lihat juga
.NET Aspire