Compartir a través de


Integración de .NET AspireAzure AI Search Documents

En este artículo, aprenderá a usar el cliente de búsqueda de documentos de IA de .NET AspireAzure. 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 📦Aspire.Azure. Search.Documents paquete NuGet en el proyecto que consume el cliente, es decir, el proyecto de la aplicación que usa el cliente de documentos de búsqueda de IA de Azure.

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 que consume el cliente, llame al método de extensión para registrar un SearchIndexClient para su uso mediante el contenedor de inyecció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 cliente 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 cliente de Azure AI Search para obtener .NET ejemplos sobre el uso de la 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 cliente para este cliente:

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

Client comprobaciones de salud de integración

De forma predeterminada, las integraciones de cliente .NET.NET Aspire tienen las comprobaciones de estado habilitadas para todos los servicios. Del mismo modo, muchas .NET.NET Aspireintegraciones de hospedaje también habilitan los puntos de conexión de comprobación de estado. Para obtener más información, consulte:

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