Delen via


Integratie van AI Search-documenten .NET AspireAzure

In dit artikel leert u hoe u de .NET AspireAzure AI Search Documents clientgebruikt. De Aspire.Azure.Search.Documents-bibliotheek wordt gebruikt om een SearchIndexClient te registreren in de container voor afhankelijkheidsinjectie (DI) om verbinding te maken met Azure Search. Hiermee worden bijbehorende statuscontroles en logboekregistratie ingeschakeld.

Voor meer informatie over het gebruik van de SearchIndexClient, zie Hoe Azurete gebruiken. Zoek in documenten binnen een C# .NET-toepassing.

Aan de slag

Installeer de 📦Aspireom aan de slag te gaan met de integratie van AI Search-documenten .NET AspireAzure.Azure. Search.Documents NuGet-pakket in het client-verbruikende project, d.w.v. het project voor de toepassing die gebruikmaakt van het Azure AI Search Documents client.

dotnet add package Aspire.Azure.Search.Documents

Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.

Voorbeeld van gebruik

Roep in het Program.cs-bestand van uw project dat clientverbruikt, de extensiemethode aan om een SearchIndexClient te registreren voor gebruik via de afhankelijkheidsinjectiecontainer. De AddAzureSearchClient-methode gebruikt een verbindingsnaamparameter.

builder.AddAzureSearchClient("searchConnectionName");

Vervolgens kunt u het SearchIndexClient exemplaar ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld de client wilt ophalen uit een voorbeeldservice:

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

U kunt ook een SearchClient ophalen die kan worden gebruikt voor het uitvoeren van query's door de methode SearchIndexClient.GetSearchClient als volgt aan te roepen:

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

Voor meer informatie, zie de Azure AI Search client bibliotheek voor .NET voor voorbeelden van het gebruik van de SearchIndexClient.

App-hostgebruik

Als u ondersteuning voor Azure AI-hosting wilt toevoegen aan uw IDistributedApplicationBuilder, installeert u het 📦Aspire.Hosting.Azure-pakket in het NuGet-app-hostproject .

dotnet add package Aspire.Hosting.Azure.Search

Voeg in het Program.cs-bestand van AppHosteen Azure Search-service toe en gebruik de verbinding met behulp van de volgende methoden:

var builder = DistributedApplication.CreateBuilder(args);

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

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

De AddAzureSearch-methode leest verbindingsgegevens uit de configuratie van AppHost (bijvoorbeeld uit 'gebruikersgeheimen') onder de ConnectionStrings:search configuratiesleutel. De methode WithReference geeft die verbindingsgegevens door aan een verbindingsreeks met de naam search in het MyService project. In het Program.cs-bestand van MyServicekan de verbinding tot stand worden gebracht met:

builder.AddAzureSearch("search");

Configuratie

De .NET AspireAzureAzure Search-bibliotheek biedt meerdere opties voor het configureren van de Azure Search Service op basis van de vereisten en conventies van uw project. Houd er rekening mee dat er een Endpoint of een ConnectionString moet worden opgegeven.

Een verbindingsreeks gebruiken

Er kan een verbinding worden gemaakt vanaf het tabblad Sleutels en Eindpunt met het formaat Endpoint={endpoint};Key={key};. U kunt de naam van de verbindingsreeks opgeven bij het aanroepen van builder.AddAzureSearch():

builder.AddAzureSearch("searchConnectionName");

Vervolgens wordt de verbindingsreeks opgehaald uit de sectie ConnectionStrings configuratie. Er worden twee verbindingsindelingen ondersteund:

Accounteindpunt

De aanbevolen methode is om een Endpointte gebruiken, die werkt met de eigenschap AzureSearchSettings.Credential om een verbinding tot stand te brengen. Als er geen inloggegevens zijn geconfigureerd, wordt de DefaultAzureCredential gebruikt.

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

Verbindingsreeks

U kunt ook een aangepaste verbindingsreeks gebruiken.

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

Configuratieproviders gebruiken

De .NET AspireAzure AI Search-bibliotheek ondersteunt Microsoft.Extensions.Configuration. Hiermee worden de AzureSearchSettings en SearchClientOptions vanuit de configuratie geladen met behulp van de Aspire:Azure:Search:Documents-sleutel. Voorbeeld appsettings.json waarmee een aantal van de opties wordt geconfigureerd:

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

Inline gedelegeerden gebruiken

U kunt ook de Action<AzureSearchSettings> configureSettings delegate doorgeven om bepaalde of alle opties inline in te stellen, bijvoorbeeld om tracering vanuit de code uit te schakelen.

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

U kunt de SearchClientOptions ook instellen met behulp van de optionele Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder parameter van de methode AddAzureSearch. Als u bijvoorbeeld de client-id voor deze clientwilt instellen:

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

Gezondheidscontroles

Standaard kunnen .NET.NET Aspire integraties statuscontroles voor alle services inschakelen. Zie .NET.NET Aspire overzicht van integratiesvoor meer informatie.

De AI-zoekdocumentenintegratie .NET AspireAzure implementeert een enkele gezondheidscontrole, die de GetServiceStatisticsAsync-methode op de SearchIndexClient aanroept om te controleren of de service beschikbaar is.

Waarneembaarheid en telemetrie

.NET .NET Aspire integraties stellen automatisch logging-, tracing- en metricsconfiguraties in, die ook wel bekendstaan als de pijlers van zichtbaarheid. Zie .NET.NET Aspire overzicht van integratieintegratiesvoor meer informatie over de waarneembaarheid en telemetrie van integraties. Afhankelijk van de back-upservice ondersteunen sommige integraties mogelijk slechts enkele van deze functies. Sommige integraties ondersteunen bijvoorbeeld logboekregistratie en tracering, maar geen metrische gegevens. Telemetriefuncties kunnen ook worden uitgeschakeld met behulp van de technieken die worden weergegeven in de sectie Configuratie.

Loggen

De integratie .NET AspireAzure AI Search Documents maakt gebruik van de volgende logboekcategorieën:

  • Azure
  • Azure.Core
  • Azure.Identity

Zie ook