.NET Aspire Azure Integrace AI pro vyhledávání dokumentů
V tomto článku se dozvíte, jak používat .NET AspireAzure AI Search Documents client. Knihovna Aspire.Azure.Search.Documents
slouží k registraci SearchIndexClient v kontejneru injektáže závislostí (DI) pro připojení k Azure Search. Umožňuje odpovídající kontroly stavu a protokolování.
Další informace o používání SearchIndexClient
naleznete v tématu Použití Azure. Search.Documents v .NET aplikace jazyka C#.
Začněte
- Azure předplatné: vytvořte si ho zdarma.
- Azure Vyhledávací služba: vytvořit prostředek pro službu Azure AI Search.
Pokud chcete začít s integrací .NET AspireAzure AI Search Documents, nainstalujte 📦Aspire.Azure. Search.Documents balíček NuGet v projektu využívajícím client, tj. projekt aplikace, která používá clientdokumenty Azure AI Search Documents .
dotnet add package Aspire.Azure.Search.Documents
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčku v aplikacích .NET.
Příklad využití
Ve vašem projektu, který využívá client, zavolejte v souboru Program.cs metodu rozšíření, která zaregistruje SearchIndexClient
k použití prostřednictvím kontejneru pro injektování závislostí. Metoda AddAzureSearchClient přebírá parametr názvu připojení.
builder.AddAzureSearchClient("searchConnectionName");
Potom můžete načíst instanci SearchIndexClient
pomocí injekce závislostí. Pokud chcete například načíst client z ukázkové služby:
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
Můžete také načíst SearchClient
, který lze použít k dotazování, voláním metody SearchIndexClient.GetSearchClient následujícím způsobem:
public class ExampleService(SearchIndexClient indexClient)
{
public async Task<long> GetDocumentCountAsync(
string indexName,
CancellationToken cancellationToken)
{
var searchClient = indexClient.GetSearchClient(indexName);
var documentCountResponse = await searchClient.GetDocumentCountAsync(
cancellationToken);
return documentCountResponse.Value;
}
}
Další informace najdete v knihovn
Využití hostitele aplikace
Pokud chcete do svého
dotnet add package Aspire.Hosting.Azure.Search
V souboru Program.csAppHost
přidejte službu vyhledávání Azure a použijte následující metody pro využití připojení:
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.ExecutionContext.IsPublishMode
? builder.AddAzureSearch("search")
: builder.AddConnectionString("search");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(search);
Metoda AddAzureSearch načte informace o připojení z konfigurace AppHostu (například z tajných kódů uživatelů) pod konfiguračním klíčem ConnectionStrings:search
. Metoda WithReference
předá informace o připojení do připojovacího řetězce s názvem search
v projektu MyService
. V souboru Program.csMyService
je možné připojení využívat pomocí:
builder.AddAzureSearch("search");
Konfigurace
Knihovna .NET AspireAzureAzure Search poskytuje několik možností, jak konfigurovat službu Azure Search na základě požadavků a konvencí vašeho projektu. Mějte na paměti, že je nutné zadat Endpoint
nebo ConnectionString
.
Použijte připojovací řetězec
Připojení lze vytvořit z karty klíče a koncového bodu s formátem Endpoint={endpoint};Key={key};
. Název připojovacího řetězce můžete zadat při volání builder.AddAzureSearch()
:
builder.AddAzureSearch("searchConnectionName");
Připojovací řetězec se poté načte z oddílu konfigurace ConnectionStrings
. Podporují se dva formáty připojení:
Koncový bod účtu
Doporučeným přístupem je použití Endpoint
, která pracuje s vlastností AzureSearchSettings.Credential
pro navázání připojení. Pokud nejsou nakonfigurované žádné přihlašovací údaje, použije se DefaultAzureCredential.
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
Připojovací řetězec
Případně můžete použít vlastní připojovací řetězec.
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
Použití zprostředkovatelů konfigurace
Knihovna .NET AspireAzure AI Search podporuje Microsoft.Extensions.Configuration. Načte AzureSearchSettings
a SearchClientOptions
z konfigurace pomocí klíče Aspire:Azure:Search:Documents
. Příklad appsettings.json, který konfiguruje některé z možností:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
Použití vložených delegátů
Můžete také předat delegáta Action<AzureSearchSettings> configureSettings
a přímo nastavit některé nebo všechny možnosti, například vyřadit trasování v kódu:
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
Můžete také nastavit SearchClientOptions pomocí volitelného parametru Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
metody AddAzureSearch
. Pokud chcete například nastavit ID client pro tento client:
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Kontroly stavu
Integrace .NET.NET Aspire ve výchozím nastavení umožňují kontroly stavu pro všechny služby. Další informace naleznete v přehledu integrací .NET.NET Aspire.
Integrace dokumentů vyhledávání .NET AspireAzure AI implementuje jednu kontrolu stavu, která volá metodu GetServiceStatisticsAsync na SearchIndexClient
, aby ověřila, že je služba dostupná.
Pozorovatelnost a telemetrie
.NET .NET Aspire integrace automaticky nastaví konfigurace protokolování, trasování a metrik, 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 vyhledávacích dokumentů AI .NET AspireAzure používá následující kategorie protokolů:
Azure
Azure.Core
Azure.Identity