Compartir a través de


integración de .NET AspireAzureOpenAI

En este artículo, aprenderá a usar el .NET AspireAzureOpenAIclient. La biblioteca Aspire.Azure.AI.OpenAI se utiliza para registrar un OpenAIClient en el contenedor de inyección de dependencias (DI) para consumir la funcionalidad de Azure,OpenAI o OpenAI. Habilita el registro y la telemetría correspondientes.

Para obtener más información sobre el uso del OpenAIClient, consulte Inicio rápido: Introducción a la generación de texto mediante AzureOpenAI Service.

Comenzar

Para comenzar con la integración de .NET AspireAzureOpenAI, instale el paquete NuGet 📦Aspire.Azure.AI.OpenAI en el proyecto consumidor de client, es decir, el proyecto de la aplicación que utiliza el AzureOpenAIclient.

dotnet add package Aspire.Azure.AI.OpenAI

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

Ejemplo de uso

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

builder.AddAzureOpenAIClient("openAiConnectionName");

En el código anterior, el método AddAzureOpenAIClient agrega un OpenAIClient al contenedor de inserción de dependencias. El parámetro openAiConnectionName es el nombre de la cadena de conexión en la configuración. A continuación, puede recuperar la instancia de OpenAIClient mediante la inserción de dependencias. Por ejemplo, para recuperar la conexión de un servicio de ejemplo:

public class ExampleService(OpenAIClient client)
{
    // Use client...
}

Uso del host de la aplicación

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

dotnet add package Aspire.Hosting.Azure.CognitiveServices

En el proyecto host de la aplicación, registre un recurso de AzureOpenAI mediante los métodos siguientes, como AddAzureOpenAI:

var builder = DistributedApplication.CreateBuilder(args);

var openai = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureOpenAI("openAiConnectionName")
    : builder.AddConnectionString("openAiConnectionName");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(openai);

El método AddAzureAIOpenAI leerá la información de conexión desde la configuración del anfitrión de la aplicación (por ejemplo, de "secretos de usuario") bajo la clave de configuración ConnectionStrings:openAiConnectionName. El método WithReference pasa esa información de conexión a una cadena de conexión denominada openAiConnectionName en el proyecto de ExampleProject. En el archivo Program.cs de ExampleProject, la conexión se puede consumir mediante:

builder.AddAzureAIOpenAI("openAiConnectionName");

Configuración

La integración de .NET AspireAzureOpenAI proporciona varias opciones para configurar la conexión en función de los requisitos y convenciones del proyecto.

Uso de una cadena de conexión

Al usar una cadena de conexión de la sección de configuración de ConnectionStrings, puede proporcionar el nombre de la cadena de conexión al llamar a builder.AddAzureAIOpenAI:

builder.AddAzureAIOpenAI("openAiConnectionName");

La cadena de conexión se recupera de la sección de configuración de ConnectionStrings, y hay dos formatos admitidos: puede ser el endpoint de la cuenta usado junto con la credencial predeterminada de Azure, o una cadena de conexión con la clave de cuenta.

Punto de conexión de cuenta

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

{
  "ConnectionStrings": {
    "openAiConnectionName": "https://{account_name}.openai.azure.com/"
  }
}

Para obtener más información, consulte Use AzureOpenAI sin claves.

Cadena de conexión

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

{
  "ConnectionStrings": {
    "openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
  }
}

Para conectarse al servicio que no es deAzureOpenAI, quite la propiedad Endpoint y establezca solo la propiedad Clave para configurar la clave de API .

Uso de proveedores de configuración

La integración de .NET AspireAzureOpenAI admite Microsoft.Extensions.Configuration. Carga el AzureOpenAISettings desde la configuración usando la clave Aspire:Azure:AI:OpenAI. Ejemplo appsettings.json que configura algunas de las opciones:

{
  "Aspire": {
    "Azure": {
      "AI": {
        "OpenAI": {
          "DisableTracing": false,
        }
      }
    }
  }
}

Usar delegados en línea

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

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    static settings => settings.DisableTracing = true);

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

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

Observabilidad y telemetría

.NET .NET Aspire integraciones configuran automáticamente las configuraciones relacionadas con el registro, el seguimiento y las 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 características 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 AspireAzureOpenAI usa las siguientes categorías de registro:

  • Azure
  • Azure.Core
  • Azure.Identity

Consulte también