Udostępnij za pośrednictwem


integracja dokumentów wyszukiwania AI .NET AspireAzure

Z tego artykułu dowiesz się, jak używać klienta dokumentów wyszukiwania sztucznej inteligencji .NET AspireAzure. 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ąć korzystanie z integracji Dokumentów Wyszukiwania Sztucznej Inteligencji .NET AspireAzure AI, zainstaluj pakiet NuGet 📦Aspire.Azure.Search.Documents w projekcie, który korzysta z tego klienta, tj. w projekcie aplikacji używającej klienta Dokumentów Wyszukiwania Sztucznej Inteligencji Azure.

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 klienta wywołaj metodę rozszerzenia, aby zarejestrować SearchIndexClient do użycia za pośrednictwem kontenera wstrzykiwania 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. Na przykład aby pobrać klienta 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ę klienta wyszukiwania sztucznej inteligencji Azure dla .NET z przykładami użycia 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 klienta dla tego klienta:

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ż