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
- 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 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.
-
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 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
- Azure Azure AI OpenAI documentos
- .NET .NET Aspire integraciones
- del repositorio