Dela via


.NET Aspire Azure integrering av AI-sökdokument

I den här artikeln får du lära dig hur du använder .NET AspireAzure AI-sökdokument client. Aspire.Azure.Search.Documents-biblioteket används för att registrera en SearchIndexClient i di-containern (beroendeinmatning) för anslutning till Azure Search. Det möjliggör motsvarande hälsokontroller och loggning.

Mer information om hur du använder SearchIndexClientfinns i Så här använder du Azure. Search.Documents i en C# .NET Application.

Sätta igång

Om du vill komma igång med integreringen av .NET AspireAzure AI Search Documents installerar du 📦Aspire.Azure. Search.Documents NuGet-paketet i projektet client-consuming, dvs. projektet för programmet som använder Azure AI Search Documents client.

dotnet add package Aspire.Azure.Search.Documents

För mer information, se dotnet add package eller Hantera paketberoenden i .NET-program.

Exempel på användning

I Program.cs-filen för ditt client-förbrukande projekt anropar du metoden för tillägg för att registrera en SearchIndexClient för användning via dependency injection-containern. Metoden AddAzureSearchClient tar en parameter för anslutningsnamn.

builder.AddAzureSearchClient("searchConnectionName");

Du kan sedan hämta SearchIndexClient-instansen med hjälp av dependency injection. Om du till exempel vill hämta client från en exempeltjänst:

public class ExampleService(SearchIndexClient indexClient)
{
    // Use indexClient
}

Du kan också hämta en SearchClient som kan användas för frågor genom att anropa metoden SearchIndexClient.GetSearchClient enligt följande:

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;
    }
}

Mer information finns i Azure AI Search client-biblioteket för .NET för exempel på hur du använder SearchIndexClient.

Appvärdanvändning

Om du vill lägga till Azure AI-värdstöd i din IDistributedApplicationBuilder, installerar du 📦Aspire.Hosting.Azure.Search NuGet-paketet i appvärdsprojektet.

dotnet add package Aspire.Hosting.Azure.Search

I filen Program.cs i AppHostlägger du till en Azure Search-tjänst och använder anslutningen med hjälp av följande metoder:

var builder = DistributedApplication.CreateBuilder(args);

var search = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureSearch("search")
    : builder.AddConnectionString("search");

var myService = builder.AddProject<Projects.MyService>()
                       .WithReference(search);

Metoden AddAzureSearch läser anslutningsinformation från AppHost-konfigurationen (till exempel från "användarhemligheter") under ConnectionStrings:search konfigurationsnyckel. Metoden WithReference skickar anslutningsinformationen till en anslutningssträng med namnet search i MyService-projektet. I filen Program.cs i MyServicekan anslutningen användas med hjälp av:

builder.AddAzureSearch("search");

Konfiguration

Biblioteket .NET AspireAzureAzure Search innehåller flera alternativ för att konfigurera Azure Söktjänst baserat på kraven och konventionerna i projektet. Observera att antingen en Endpoint eller en ConnectionString måste anges.

Använda en anslutningssträng

En anslutning kan konstrueras från fliken Nycklar och Slutpunkter med formatet Endpoint={endpoint};Key={key};. Du kan ange namnet på anslutningssträngen när du anropar builder.AddAzureSearch():

builder.AddAzureSearch("searchConnectionName");

Och sedan hämtas anslutningssträngen från avsnittet ConnectionStrings konfiguration. Två anslutningsformat stöds:

Kontoslutpunkt

Den rekommenderade metoden är att använda en Endpoint, som fungerar med egenskapen AzureSearchSettings.Credential för att upprätta en anslutning. Om inga autentiseringsuppgifter har konfigurerats används DefaultAzureCredential.

{
  "ConnectionStrings": {
    "searchConnectionName": "https://{search_service}.search.windows.net/"
  }
}

Anslutningssträng

Du kan också använda en anpassad anslutningssträng.

{
  "ConnectionStrings": {
    "searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
  }
}

Använda konfigurationsprovidrar

.NET Aspire Azure AI Search-biblioteket stöder Microsoft.Extensions.Configuration. Den läser in AzureSearchSettings och SearchClientOptions från konfigurationen med hjälp av Aspire:Azure:Search:Documents-nyckeln. Exempel appsettings.json som konfigurerar några av alternativen:

{
  "Aspire": {
    "Azure": {
      "Search": {
        "Documents": {
          "DisableTracing": false,
        }
      }
    }
  }
}

Använd inlinjedelegater

Du kan också överföra Action<AzureSearchSettings> configureSettings-delegaten för att konfigurera vissa eller alla alternativ inline, till exempel för att inaktivera spårning från kod:

builder.AddAzureSearch(
    "searchConnectionName",
    static settings => settings.DisableTracing = true);

Du kan också konfigurera SearchClientOptions med hjälp av den valfria Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder parametern för metoden AddAzureSearch. Om du till exempel vill ange client ID för den här client:

builder.AddAzureSearch(
    "searchConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

Hälsokontroller

Som standard aktiverar .NET.NET Aspire integreringar hälsokontroller för alla tjänster. Mer information finns i översikten över .NET.NET Aspire integreringar.

Integreringen .NET AspireAzure AI Search Documents implementerar en enda hälsokontroll som anropar metoden GetServiceStatisticsAsyncSearchIndexClient för att verifiera att tjänsten är tillgänglig.

Observerbarhet och telemetri

.NET .NET Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i översikten över .NET.NET Aspire integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.

Skogsavverkning

Integreringen .NET AspireAzure AI Search Documents använder följande loggkategorier:

  • Azure
  • Azure.Core
  • Azure.Identity

Se även