Compartir a través de


Integración de .NET AspireAzure AI Search Documents

En este artículo, aprenderá a usar los documentos de búsqueda de IA de .NET AspireAzureclient. La biblioteca Aspire.Azure.Search.Documents se utiliza para registrar un SearchIndexClient en el contenedor de inyección de dependencias (DI) para conectarse a Azure Search. Habilita las comprobaciones de estado y el registro correspondientes.

Para obtener más información sobre cómo usar el/la SearchIndexClient, consulta cómo utilizar Azure: Búsqueda de documentos en una aplicación C# .NET.

Comenzar

Para empezar a trabajar con la integración de .NET AspireAzure AI Search Documents, instale el paquete NuGet 📦Aspire.Azure.Search.Documents en el proyecto consumidor client, es decir, el proyecto de la aplicación que usa Azure AI Search Documents client.

dotnet add package Aspire.Azure.Search.Documents

Para obtener más información, consulte dotnet add package o Administrar dependencias de paquetes en aplicaciones .NET.

Ejemplo de uso

En el archivo Program.cs del proyecto client-consuming, llame al método de extensión para registrar un SearchIndexClient para su uso a través del contenedor de inserción de dependencias. El método AddAzureSearchClient toma un parámetro de nombre de conexión.

builder.AddAzureSearchClient("searchConnectionName");

A continuación, puede recuperar la instancia de SearchIndexClient mediante la inyección de dependencias. Por ejemplo, para recuperar el client de un servicio de ejemplo:

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

También puede recuperar un SearchClient que se puede usar para realizar consultas mediante una llamada al método SearchIndexClient.GetSearchClient de la siguiente manera:

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 obtener más información, consulte la biblioteca client de Azure AI Search para obtener .NET ejemplos sobre cómo usar el SearchIndexClient.

Uso del host de la aplicación

Para agregar compatibilidad con el hospedaje de inteligencia artificial de Azure a la IDistributedApplicationBuilder, instale el paquete NuGet 📦Aspire.Hosting.Azure.Search en el proyecto de host de la aplicación .

dotnet add package Aspire.Hosting.Azure.Search

En el archivo Program.cs de AppHost, agregue un servicio Azure Search y consuma la conexión mediante los métodos siguientes:

var builder = DistributedApplication.CreateBuilder(args);

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

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

El método AddAzureSearch leerá la información de conexión de la configuración del AppHost (por ejemplo, "secretos de usuario") en la clave de configuración ConnectionStrings:search. El método WithReference pasa esa información de conexión a una cadena de conexión denominada search en el proyecto de MyService. En el archivo Program.cs de MyService, la conexión puede consumirse mediante:

builder.AddAzureSearch("search");

Configuración

La biblioteca de búsqueda de .NET AspireAzureAzure proporciona varias opciones para configurar el servicio de búsqueda de Azure en función de los requisitos y convenciones del proyecto. Tenga en cuenta que es necesario proporcionar una Endpoint o una ConnectionString.

Uso de una cadena de conexión

Se puede construir una conexión a partir de la pestaña con las Claves y el punto de conexión con el formato Endpoint={endpoint};Key={key};. Puede proporcionar el nombre de la cadena de conexión al llamar a builder.AddAzureSearch():

builder.AddAzureSearch("searchConnectionName");

Y, a continuación, la cadena de conexión se recuperará de la sección de configuración de ConnectionStrings. Se admiten dos formatos de conexión:

Punto de conexión de cuenta

El enfoque recomendado es usar un Endpoint, que funciona con la propiedad AzureSearchSettings.Credential para establecer una conexión. Si no se configura ninguna credencial, se usa el DefaultAzureCredential.

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

Cadena de conexión

Como alternativa, se puede usar una cadena de conexión personalizada.

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

Uso de proveedores de configuración

La biblioteca .NET AspireAzure AI Search admite Microsoft.Extensions.Configuration. Carga el AzureSearchSettings y el SearchClientOptions desde la configuración mediante la clave Aspire:Azure:Search:Documents. Ejemplo appsettings.json que configura algunas de las opciones:

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

Usar delegados insertados

También puede pasar el delegado Action<AzureSearchSettings> configureSettings para configurar algunas o todas las opciones en línea, por ejemplo, para deshabilitar el seguimiento desde el código.

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

También puede configurar el SearchClientOptions mediante el parámetro opcional Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder del método AddAzureSearch. Por ejemplo, para establecer el identificador de client para este client:

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

Comprobaciones de estado

Por defecto, las integraciones de .NET.NET Aspire habilitan las verificaciones de salud de para todos los servicios. Para obtener más información, consulte .NET.NET Aspire integrations overview.

La integración de .NET AspireAzure AI Search Documents implementa una única verificación de salud, que invoca el método GetServiceStatisticsAsync en el SearchIndexClient para verificar que el servicio está disponible.

Observabilidad y telemetría

.NET .NET Aspire integraciones configuran automáticamente las configuraciones de registro, seguimiento y métricas, que a veces se conocen como los pilares de la observabilidad. Para obtener más información sobre la observabilidad de integración y la telemetría, consulte información general sobre las integraciones de .NET.NET Aspire. En función del servicio de respaldo, algunas integraciones solo pueden admitir algunas de estas características. Por ejemplo, algunas integraciones admiten el registro y el seguimiento, pero no las métricas. Las funcionalidades de telemetría también se pueden deshabilitar mediante las técnicas presentadas en la sección Configuración.

Registro

La integración de .NET AspireAzure AI Search Documents usa las siguientes categorías de registro:

  • Azure
  • Azure.Core
  • Azure.Identity

Consulte también