Sdílet prostřednictvím


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 .

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 usernameroot 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.

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.DisableHealthChecksfalse, 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é