Udostępnij za pośrednictwem


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

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 AppHostdodaj 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 MyServicemoż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

Zobacz też