Compartilhar via


.NET Aspire Azure integração de Documentos de Pesquisa de IA

Neste artigo, você aprenderá a usar os documentos de pesquisa de IA .NET AspireAzureclient. A biblioteca Aspire.Azure.Search.Documents é usada para registrar um SearchIndexClient no contêiner de injeção de dependência (DI) para conectar ao Azure Search. Ele habilita verificações de integridade correspondentes e registro em log.

Para obter mais informações sobre como usar o SearchIndexClient, consulte Como usar Azure. Search.Documents em um aplicativo .NET C#.

Começar

Para começar a usar a integração .NET AspireAzure AI Search Documents, instale o pacote NuGet 📦Aspire.Azure. Search.Documents no projeto de consumo de client, ou seja, o projeto do aplicativo que usa o Azure AI Search Documents client.

dotnet add package Aspire.Azure.Search.Documents

Para obter mais informações, consulte dotnet add package ou Gerenciar dependências de pacotes em aplicações .NET.

Exemplo de uso

No arquivo Program.cs do seu projeto consumidor de client, chame o método de extensão para registrar um SearchIndexClient para uso através do contêiner de injeção de dependência. O método AddAzureSearchClient usa um parâmetro de nome de conexão.

builder.AddAzureSearchClient("searchConnectionName");

Em seguida, você pode recuperar a instância SearchIndexClient usando a injeção de dependência. Por exemplo, para recuperar o client de um serviço de exemplo:

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

Você também pode recuperar um SearchClient que pode ser usado para consulta, chamando o método SearchIndexClient.GetSearchClient da seguinte maneira:

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

Para obter mais informações, consulte a biblioteca client de Pesquisa de IA Azure para .NET para obter exemplos sobre como usar o SearchIndexClient.

Uso do host do aplicativo

Para adicionar Azure suporte à hospedagem de IA ao seu IDistributedApplicationBuilder, instale o 📦Aspire. Hospedagem.Azure. Pesquise pacote NuGet no projeto de host do aplicativo.

dotnet add package Aspire.Hosting.Azure.Search

No arquivo Program.cs de AppHost, adicione um serviço Azure Search e consuma a conexão usando os seguintes métodos:

var builder = DistributedApplication.CreateBuilder(args);

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

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

O método AddAzureSearch irá ler informações de conexão da configuração do AppHost (por exemplo, dos "segredos do usuário") sob a chave de configuração ConnectionStrings:search. O método WithReference passa essas informações de conexão para uma cadeia de conexão chamada search no projeto MyService. No arquivo Program.cs de MyService, a conexão pode ser utilizada usando:

builder.AddAzureSearch("search");

Configuração

A biblioteca .NET AspireAzureAzure Pesquisa fornece várias opções para configurar o Serviço de Pesquisa Azure com base nos requisitos e convenções do seu projeto. Observe que é necessário fornecer um Endpoint ou um ConnectionString.

Usar uma cadeia de conexão

Uma conexão pode ser estabelecida a partir da guia Chaves e ponto final com o formato Endpoint={endpoint};Key={key};. Você pode fornecer o nome da cadeia de conexão ao chamar builder.AddAzureSearch():

builder.AddAzureSearch("searchConnectionName");

E, em seguida, a cadeia de conexão será recuperada da seção de configuração ConnectionStrings. Há suporte para dois formatos de conexão:

Ponto de extremidade da conta

A abordagem recomendada é usar um Endpoint, que funciona com a propriedade AzureSearchSettings.Credential para estabelecer uma conexão. Se nenhuma credencial estiver configurada, o DefaultAzureCredential será usado.

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

Cadeia de conexão

Como alternativa, uma cadeia de conexão personalizada pode ser usada.

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

Usar provedores de configuração

A biblioteca de pesquisa de IA do .NET AspireAzure dá suporte a Microsoft.Extensions.Configuration. Ele carrega o AzureSearchSettings e SearchClientOptions da configuração usando a chave Aspire:Azure:Search:Documents. Exemplo appsettings.json que configura algumas das opções:

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

Usar delegados embutidos

Você também pode passar o delegado Action<AzureSearchSettings> configureSettings para configurar algumas ou todas as opções diretamente na linha, por exemplo, para desabilitar o rastreamento a partir do código:

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

Você também pode configurar o SearchClientOptions usando o parâmetro Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder opcional do método AddAzureSearch. Por exemplo, para definir a ID de client para este client:

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

Verificações de saúde

Por padrão, as integrações .NET.NET Aspire habilitam verificações de integridade para todos os serviços. Para obter mais informações, consulte .NET.NET Aspire visão geral de integrações.

A integração .NET AspireAzure de Documentos de Pesquisa de IA implementa um teste de integridade único, que chama o método GetServiceStatisticsAsync no SearchIndexClient para verificar se o serviço está disponível.

Observabilidade e telemetria

.NET .NET Aspire integrações configuram automaticamente configurações de Log, Rastreamento e Métricas, que às vezes são conhecidas como os pilares da observabilidade. Para obter mais informações sobre a observabilidade e a telemetria de integração, consulte .NET.NET Aspire visão geral das integrações. Dependendo do serviço de backup, algumas integrações só podem dar suporte a alguns desses recursos. Por exemplo, algumas integrações dão suporte a registro em log e rastreamento, mas não a métricas. Os recursos de telemetria também podem ser desabilitados usando as técnicas apresentadas na seção Configuration.

Registro

A integração .NET AspireAzure AI Search Documents usa as seguintes categorias de log:

  • Azure
  • Azure.Core
  • Azure.Identity

Consulte também