integrace databáze .NET AspireMilvus
zahrnuje:integraci hostování a Client integraci
Milvus je opensourcový databázový systém, který efektivně ukládá, indexuje a prohledává rozsáhlá vektorová data. Běžně se používá v aplikacích strojového učení, umělé inteligence a datových věd.
Vektorová data kódují informace jako matematické vektory, což jsou pole čísel nebo souřadnic. Systémy strojového učení a umělé inteligence často používají vektory k reprezentaci nestrukturovaných objektů, jako jsou obrázky, text, zvuk nebo video. Každá dimenze vektoru popisuje specifickou charakteristiku objektu. Díky jejich porovnání můžou systémy klasifikovat, vyhledávat a identifikovat clustery objektů.
V tomto článku se dozvíte, jak používat integraci databáze .NET AspireMilvus. Integrace databáze .NET AspireMilvus umožňuje připojit se k existujícím databázím Milvus nebo vytvářet nové instance s obrazem kontejneru milvusdb/milvus
.
Integrace hostování
Databáze Milvus hostující integraci modeluje server jako typ MilvusServerResource a databázi jako typ MilvusDatabaseResource. Pokud chcete získat přístup k těmto typům a rozhraním API, přidejte balíček NuGet 📦Aspire.Hosting.Milvus v projektu hostitele aplikace .
-
rozhraní příkazového řádku
- OdkazNaBalíček
dotnet add package Aspire.Hosting.Milvus
Další informace najdete v tématu dotnet add package nebo Spravovat závislosti balíčků v .NET aplikacích.
Přidejte prostředky serveru a databáze Milvus
V projektu hostitele aplikace zavolejte AddMilvus, abyste přidali a poté vrátili tvůrce zdrojů Milvus. Spojte volání builderu vráceného prostředku k AddDatabasea přidejte databázový prostředek 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...
Poznámka
Kontejner Milvus může být pomalý, takže je nejlepší použít trvalou životnost, abyste se vyhnuli zbytečným restartováním. Podrobnosti naleznete v části Životnost prostředků kontejneru.
Když .NET.NET Aspire přidá do hostitele aplikace image kontejneru, jak je znázorněno v předchozím příkladu s imagí milvusdb/milvus
, vytvoří na místním počítači novou instanci Milvus. K přidání databáze se používá odkaz na nástroj pro tvorbu prostředků Milvus (proměnná milvus
). Databáze se jmenuje milvusdb
a pak se přidá do ExampleProject
.
Metoda WithReference nakonfiguruje připojení v ExampleProject
s názvem milvusdb
.
Spropitné
Pokud byste se raději připojili k existujícímu serveru Milvus, volejte místo toho AddConnectionString. Další informace naleznete v tématu Odkaz na existující prostředky.
Zpracování přihlašovacích údajů a předávání dalších parametrů pro prostředek Milvus
Prostředek Milvus obsahuje výchozí přihlašovací údaje s hodnotou username
root
a s heslem Milvus
.
Milvus podporuje výchozí hesla založená na konfiguraci použitím proměnné prostředí COMMON_SECURITY_DEFAULTROOTPASSWORD
. Pokud chcete změnit výchozí heslo v kontejneru, předejte při volání rozhraní API pro hostování apiKey
parametr AddMilvus
:
var apiKey = builder.AddParameter("apiKey", secret: true);
var milvus = builder.AddMilvus("milvus", apiKey);
var myService = builder.AddProject<Projects.ExampleProject>()
.WithReference(milvus);
Předchozí kód získává parametr, který se předává rozhraní AddMilvus
API, a pak interně přiřazuje tento parametr proměnné prostředí COMMON_SECURITY_DEFAULTROOTPASSWORD
uvnitř kontejneru Milvus. Parametr apiKey
je obvykle určen jako tajný kód uživatele:
{
"Parameters": {
"apiKey": "Non-default-P@ssw0rd"
}
}
Další informace naleznete v tématu Externí parametry.
Přidejte Milvus zdroj s datovým svazkem
Pokud chcete přidat datový svazek do prostředku služby Milvus, zavolejte metodu WithDataVolume prostředku 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...
Objem dat se používá k zachování Milvus dat mimo životní cyklus kontejneru. Datový svazek se připojí k cestě /var/lib/milvus
v kontejneru SQL Server a když není zadaný parametr name
, název se náhodně vygeneruje. Pro více informací o datových svazcích a podrobnosti o tom, proč jsou upřednostňovány před připojeními vazby , naleznete v dokumentaci Docker: Svazky.
Přidejte prostředek Milvus s připojením propojování dat.
Chcete-li přidat datovou vazbu k prostředku Milvus, zavolejte metodu 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...
Důležitý
Připojení vazby dat mají v porovnání s svazkyomezené funkce, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je vhodnější pro produkční prostředí. Připojení typu bind však umožňují přímý přístup a úpravy souborů v hostitelském systému, což je ideální pro vývoj a testování, kdy jsou potřebné změny v reálném čase.
Datové bind mounty využívají systém souborů hostitelského počítače k zachování Milvus dat při restartování kontejneru. Připojení vazby dat je namontováno na cestu C:\Milvus\Data
ve Windows (nebo /Milvus/Data
na Unix) v hostitelském počítači v kontejneru Milvus. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.
Vytvoření prostředku Attu
Attu je grafický nástroj uživatelského rozhraní (GUI) a nástroj pro správu navržený pro interakci s Milvus a jeho databázemi. Obsahuje bohaté funkce vizualizace, které vám pomůžou prozkoumat a pochopit vektorová data.
Pokud chcete ke správě Milvus v řešení .NET Aspire použít Attu, zavolejte metodu rozšíření WithAttu pro prostředek Milvus. Metoda vytvoří kontejner z zilliz/attu
image:
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...
Když ladíte řešení .NET.NET Aspire, zobrazí se kontejner Attu uvedený v prostředcích řešení. Výběrem koncového bodu prostředku otevřete grafické uživatelské rozhraní a začněte spravovat databáze.
integrace Client
Pokud chcete začít s integrací klienta .NET AspireMilvus, nainstalujte 📦Aspire.Milvus.Client balíček NuGet v projektu, který využívá klienta, to znamená projekt aplikace, která používá klienta databáze Milvus. Integrace klienta Milvus zaregistruje Milvus.Client. MilvusClient instance, kterou můžete použít k interakci s Milvus databázemi.
-
rozhraní příkazového řádku
- OdkazNaBalíček
dotnet add package Aspire.Milvus.Client
Přidejte klienta Milvus
V souboru Program.cs projektu, který využívá klienta, zavolejte rozšiřující metodu AddMilvusClient na libovolné IHostApplicationBuilder a zaregistrujte MilvusClient
pro použití prostřednictvím kontejneru pro vkládání závislostí. Metoda přebírá parametr názvu připojení.
builder.AddMilvusClient("milvusdb");
Spropitné
Parametr connectionName
se musí shodovat s názvem použitým při přidávání prostředku databáze Milvus do hostitelského projektu aplikace. Jinými slovy, když voláte AddDatabase
a zadáte název milvusdb
, měl by se stejný název použít při volání AddMilvusClient
. Další informace najdete v tématu Přidání prostředku serveru Milvus a databázového prostředku.
Potom můžete načíst instanci MilvusClient
pomocí injekce závislostí. Pokud například chcete načíst připojení z ukázkové služby:
public class ExampleService(MilvusClient client)
{
// Use the Milvus Client...
}
Další informace o injektáži závislostí najdete v tématu .NET injektáž závislostí.
Přidat klíčovaného klienta Milvus
Mohou nastat situace, kdy budete chtít zaregistrovat více instancí MilvusClient
s různými názvy připojení. Pokud chcete zaregistrovat klíčované klienty Milvus, zavolejte metodu AddKeyedMilvusClient:
builder.AddKeyedMilvusClient(name: "mainDb");
builder.AddKeyedMilvusClient(name: "loggingDb");
Důležitý
Při použití služeb s klíči se očekává, že váš prostředek Milvus nakonfiguroval dvě pojmenované databáze, jednu pro mainDb
a druhou pro loggingDb
.
Potom můžete získat instance MilvusClient
pomocí dependency injection. Pokud například chcete načíst připojení z ukázkové služby:
public class ExampleService(
[FromKeyedServices("mainDb")] MilvusClient mainDbClient,
[FromKeyedServices("loggingDb")] MilvusClient loggingDbClient)
{
// Use clients...
}
Pro více informací o klíčových službách se podívejte na .NET injektování závislostí: Klíčové služby.
Konfigurace
Integrace klienta .NET AspireMilvus nabízí několik možností konfigurace připojení k Milvus na základě požadavků a konvencí projektu.
Spropitné
Výchozí použití je root
a výchozí heslo je Milvus
. Pokud chcete v kontejneru Milvus nakonfigurovat jiné heslo, přečtěte si téma Zpracování přihlašovacích údajů a předávání dalších parametrů pro prostředek Milvus. Pomocí následujících technik můžete nakonfigurovat využívání klientských aplikací ve vašem .NET.NET Aspire řešení se stejným heslem nebo jiným nastavením.
Použijte připojovací řetězec
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
můžete při volání builder.AddMilvusClient()
zadat název připojovacího řetězce:
builder.AddMilvusClient("milvus");
A potom se řetězec připojení načte z oddílu konfigurace ConnectionStrings
.
{
"ConnectionStrings": {
"milvus": "Endpoint=http://localhost:19530/;Key=root:Non-default-P@ssw0rd"
}
}
Ve výchozím nastavení MilvusClient
používá koncový bod rozhraní API gRPC.
Použití zprostředkovatelů konfigurace
Integrace klienta .NET AspireMilvus podporuje Microsoft.Extensions.Configuration. Načte MilvusClientSettings z konfigurace pomocí klíče Aspire:Milvus:Client
. Následující fragment kódu je příkladem appsettings.json, který konfiguruje některé z možností:
{
"Aspire": {
"Milvus": {
"Client": {
"Endpoint": "http://localhost:19530/",
"Database": "milvusdb",
"Key": "root:Non-default-P@ssw0rd",
"DisableHealthChecks": false
}
}
}
}
Kompletní schéma integrace klienta MilvusJSON viz Aspire.Milvus.Client/ConfigurationSchema.json.
Použití vložených delegátů
Můžete také předat delegáta Action<MilvusSettings> configureSettings
pro nastavení některých nebo všech možností přímo v kódu, například pro nastavení klíče rozhraní API.
builder.AddMilvusClient(
"milvus",
static settings => settings.Key = "root:Non-default-P@ssw0rd");
Client kontroly stavu integrace
Integrace .NET.NET Aspire ve výchozím nastavení umožňují provádění kontrol stavu pro všechny služby. Další informace viz .NET.NET Aspire přehled integrací.
Integrace databáze .NET AspireMilvus:
- Přidá kontrolu stavu, když je MilvusClientSettings.DisableHealthChecks
false
, která se pokusí připojit k serveru Milvus. - Používá nakonfigurovaného klienta k provedení
HealthAsync
. Pokud je výsledek zdravý, kontrola stavu se považuje za zdravou, v opačném případě je nezdravá. Podobně platí, že pokud dojde k výjimce, je kontrola stavu považována za nezdravou a chyba se šíří prostřednictvím selhání této kontroly.
Pozorovatelnost a telemetrie
.NET .NET Aspire integrace automaticky nastaví konfigurace protokolování, trasování a metriky, které se někdy označují jako pilíře pozorovatelnosti. Další informace o pozorovatelnosti a telemetrii integrace najdete v přehledu integrace .NET.NET Aspire. V závislosti na zálohovací službě můžou některé integrace podporovat pouze některé z těchto funkcí. Například některé integrace podporují protokolování a trasování, ale ne metriky. Funkce telemetrie je také možné zakázat pomocí technik uvedených v části Konfigurace.
Protokolování
Integrace databáze .NET AspireMilvus používá standardní protokolování .NET a uvidíte položky protokolu z následující kategorie:
Milvus.Client
Trasování
Integrace databáze .NET AspireMilvus momentálně nevysílá činnosti sledování, protože je knihovna Milvus.Client
nepodporuje.
Metriky
Integrace databáze .NET AspireMilvus v současné době nevygeneruje metriky, protože je knihovna Milvus.Client
nepodporuje.
Viz také
- Milvus
- Milvus GitHub repo úložiště
- Milvus .NET SDK
- integrace .NET.NET Aspire
- .NET Aspire GitHub repo úložiště