integracja dokumentów wyszukiwania AI .NET AspireAzure
Z tego artykułu dowiesz się, jak używać dokumentów wyszukiwania sztucznej inteligencji .NET AspireAzureclient. Biblioteka Aspire.Azure.Search.Documents
służy do rejestrowania SearchIndexClient w kontenerze wstrzykiwania zależności (DI) na potrzeby nawiązywania połączenia z usługą Azure Search. Umożliwia ona odpowiednie kontrole kondycji i rejestrowanie.
Aby uzyskać więcej informacji na temat korzystania z SearchIndexClient
, zobacz , jak używać Azure. Wyszukaj dokumenty w aplikacji .NET języka C#.
Rozpocznij
- Azure subskrypcja: utwórz bezpłatną subskrypcję.
- Usługa wyszukiwania Azure: utworzyć zasób usługi wyszukiwania AI Azure.
Aby rozpocząć pracę z integracją z dokumentami AI Search .NET AspireAzure, zainstaluj pakiet NuGet 📦Aspire.Azure. Search.Documents w projekcie wykorzystującym client, czyli w projekcie aplikacji używającej dokumentów AI Search Azureclient.
dotnet add package Aspire.Azure.Search.Documents
Aby uzyskać więcej informacji, zobacz dotnet add package lub zarządzaj zależnościami pakietów w aplikacjach .NET.
Przykładowe użycie
W pliku Program.cs projektu korzystającego z client, wywołaj metodę rozszerzającą, aby zarejestrować SearchIndexClient
do użycia poprzez kontener iniekcji zależności. Metoda AddAzureSearchClient przyjmuje parametr nazwy połączenia.
builder.AddAzureSearchClient("searchConnectionName");
Następnie przy użyciu wstrzykiwania zależności można pobrać wystąpienie SearchIndexClient
. Aby na przykład pobrać client z przykładowej usługi:
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
Możesz również pobrać SearchClient
, którego można użyć do wykonywania zapytań, wywołując metodę SearchIndexClient.GetSearchClient w następujący sposób:
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;
}
}
Aby uzyskać więcej informacji, zobacz bibliotekę client wyszukiwania sztucznej inteligencji Azure.NET, aby zapoznać się z przykładami dotyczącymi używania SearchIndexClient
.
Użycie hosta aplikacji
Aby dodać obsługę hostingu sztucznej inteligencji Azure do IDistributedApplicationBuilder, zainstaluj pakiet NuGet 📦Aspire.Hosting.Azure.Wyszukiwanie w projekcie hosta aplikacji .
dotnet add package Aspire.Hosting.Azure.Search
W pliku Program.cs w AppHost
dodaj usługę wyszukiwania Azure i korzystaj z połączenia według poniższych metod:
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 odczytuje informacje o połączeniu z konfiguracji hosta AppHost (na przykład z "wpisów tajnych użytkownika") w kluczu konfiguracji ConnectionStrings:search
. Metoda WithReference
przekazuje te informacje o połączeniu do ciągu połączenia o nazwie search
w projekcie MyService
. W pliku Program.cs dla MyService
można wykorzystać połączenie:
builder.AddAzureSearch("search");
Konfiguracja
Biblioteka wyszukiwania .NET AspireAzureAzure udostępnia wiele opcji konfigurowania usługi wyszukiwania Azure na podstawie wymagań i konwencji projektu. Należy pamiętać, że należy podać Endpoint
lub ConnectionString
.
Użyj łańcucha połączenia
Połączenie można utworzyć na karcie Klucze i Punkt Końcowy z formatem Endpoint={endpoint};Key={key};
. Podczas wywoływania metody builder.AddAzureSearch()
można podać nazwę parametrów połączenia:
builder.AddAzureSearch("searchConnectionName");
Następnie parametry połączenia zostaną pobrane z sekcji konfiguracji ConnectionStrings
. Obsługiwane są dwa formaty połączeń:
Punkt końcowy konta
Zalecaną metodą jest użycie Endpoint
, który współdziała z właściwością AzureSearchSettings.Credential
w celu nawiązania połączenia. Jeśli żadne poświadczenie nie jest skonfigurowane, użyte zostanie DefaultAzureCredential.
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
Łańcuch połączenia
Alternatywnie można użyć niestandardowych parametrów połączenia.
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
Korzystanie z dostawców konfiguracji
Biblioteka wyszukiwania sztucznej inteligencji .NET AspireAzure obsługuje Microsoft.Extensions.Configuration. Ładuje AzureSearchSettings
i SearchClientOptions
z konfiguracji, korzystając z klucza Aspire:Azure:Search:Documents
. Przykład appsettings.json, który konfiguruje niektóre opcje:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
Używanie delegatów wbudowanych
Możesz również przekazać delegata Action<AzureSearchSettings> configureSettings
, aby skonfigurować niektóre lub wszystkie opcje wbudowane, na przykład w celu wyłączenia śledzenia z kodu:
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
Można również skonfigurować SearchClientOptions przy użyciu opcjonalnego parametru Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
metody AddAzureSearch
. Aby na przykład ustawić identyfikator client dla tego client:
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Kontrole kondycji
Domyślnie .NET.NET Aspire integracje umożliwiają sprawdzanie kondycji dla wszystkich usług. Aby uzyskać więcej informacji, zobacz omówienie integracji .NET.NET Aspire.
Integracja .NET AspireAzure wyszukiwarki dokumentów AI implementuje jedną kontrolę stanu, która wywołuje metodę GetServiceStatisticsAsync w SearchIndexClient
w celu sprawdzenia, czy usługa jest dostępna.
Obserwowanie i telemetria
.NET
.NET Aspire integracje automatycznie konfigurują logowanie, śledzenie i metryki, które czasami są nazywane filarami obserwowalności. Aby uzyskać więcej informacji na temat możliwości obserwacji integracji i telemetrii, zobacz omówienie integracji .NET.NET Aspire. W zależności od usługi pomocniczej niektóre integracje mogą obsługiwać tylko niektóre z tych funkcji. Na przykład niektóre integracje obsługują rejestrowanie i śledzenie, ale nie metryki. Funkcje telemetrii można również wyłączyć przy użyciu technik przedstawionych w sekcji konfiguracji
Logowanie
Integracja dokumentów wyszukiwania sztucznej inteligencji .NET AspireAzure korzysta z następujących kategorii dzienników:
Azure
Azure.Core
Azure.Identity