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
- Azure Suscripción: Crear una de forma gratuita.
- Azure Servicio de búsqueda: crear un recurso de servicio de búsqueda por IA de Azure.
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.
-
de la CLI de
- PackageReference
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 .
-
de la CLI de
- PackageReference
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:
- .NET comprobaciones de estado de la aplicación en C#
- comprobaciones de estado de en ASP.NET Core
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
- Azure Azure AI OpenAI documentos
- .NET .NET Aspire integraciones
- del repositorio