Partilhar via


.NET Aspire Azure OpenAI integração

Neste artigo, você aprenderá a usar o .NET AspireAzureOpenAIclient. A biblioteca Aspire.Azure.AI.OpenAI é usada para registar um OpenAIClient no contentor de injeção de dependência (DI) para consumir a funcionalidade de AzureOpenAI ou OpenAI. Permite o registo e telemetria correspondentes.

Para obter mais informações sobre como usar o OpenAIClient, consulte Início Rápido: comece a gerar texto com o AzureOpenAI Service.

Começar

Para começar com a integração .NET AspireAzureOpenAI, instale o pacote NuGet do 📦Aspire.Azure. IA.OpenAI no projeto que consome client, isto é, no projeto para a aplicação que utiliza o AzureOpenAIclient.

dotnet add package Aspire.Azure.AI.OpenAI

Para obter mais informações, consulte dotnet add package ou Manage package dependencies in .NET applications.

Exemplo de utilização

No arquivo de Program.cs do seu projeto que consome client, chame o método de extensão para registrar um OpenAIClient para ser utilizado através do contêiner de injeção de dependência. O método usa um parâmetro de nome de conexão.

builder.AddAzureOpenAIClient("openAiConnectionName");

No código anterior, o método AddAzureOpenAIClient adiciona um OpenAIClient ao contêiner DI. O parâmetro openAiConnectionName é o nome da cadeia de conexão na configuração. Em seguida, você pode recuperar a instância OpenAIClient usando a injeção de dependência. Por exemplo, para recuperar a conexão de um serviço de exemplo:

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

Utilização do host da aplicação

Para adicionar Azure suporte de hospedagem ao seu IDistributedApplicationBuilder, instale o 📦Aspire.Hosting.Azure.CognitiveServices pacote NuGet no projeto da aplicação anfitriã .

dotnet add package Aspire.Hosting.Azure.CognitiveServices

Em seu projeto de host de aplicativo, registre um recurso de AzureOpenAI usando os seguintes métodos, como AddAzureOpenAI:

var builder = DistributedApplication.CreateBuilder(args);

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

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

O método AddAzureAIOpenAI lerá as informações de conexão da configuração do host do aplicativo (por exemplo, de "segredos do usuário") sob a chave de configuração ConnectionStrings:openAiConnectionName. O método WithReference passa essas informações de conexão para uma cadeia de conexão chamada openAiConnectionName no projeto ExampleProject. No arquivo Program.cs de ExampleProject, a conexão pode ser consumida usando:

builder.AddAzureAIOpenAI("openAiConnectionName");

Configuração

A integração .NET AspireAzureOpenAI fornece várias opções para configurar a conexão com base nos requisitos e convenções do seu projeto.

Usar uma string de conexão

Ao usar uma cadeia de conexão da seção de configuração de ConnectionStrings, você pode fornecer o nome da cadeia de conexão ao chamar builder.AddAzureAIOpenAI:

builder.AddAzureAIOpenAI("openAiConnectionName");

A cadeia de ligação é obtida a partir da secção de configuração ConnectionStrings, e há dois formatos suportados: o ponto de acesso da conta utilizado em conjunto com a credencial padrão de Azure, ou uma cadeia de ligação com a chave da conta.

Ponto final da conta

A abordagem recomendada é usar um Endpoint, que funciona com a propriedade AzureOpenAISettings.Credential para estabelecer uma conexão. Se nenhuma credencial estiver configurada, o DefaultAzureCredential será usado.

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

Para obter mais informações, consulte Usar AzureOpenAI sem chaves.

Cadeia de conexão

Como alternativa, uma cadeia de conexão personalizada pode ser usada.

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

Para se conectar ao serviço que não éAzureOpenAI, solte a propriedade Endpoint e defina apenas a propriedade Key para definir a chave de API .

Usar provedores de configuração

A integração .NET AspireAzureOpenAI suporta Microsoft.Extensions.Configuration. Ele carrega o AzureOpenAISettings da configuração usando a chave Aspire:Azure:AI:OpenAI. Exemplo de appsettings.json que configura algumas das opções:

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

Usar delegados embutidos

Além disso, podes passar o Action<AzureOpenAISettings> configureSettings delegado para configurar algumas ou todas as opções embutidas, por exemplo, para desativar o rastreamento a partir do código:

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

Você também pode configurar o OpenAIClientOptions usando o parâmetro Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder opcional do método AddAzureAIOpenAI. Por exemplo, para definir o ID de client para este client:

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

Observabilidade e telemetria

.NET .NET Aspire integrações configuram automaticamente as configurações de Logging, Trace e Metrics, que às vezes são conhecidas como os pilares da observabilidade. Para obter mais informações sobre observabilidade e telemetria de integração, consulte Visão geral de integrações .NET.NET Aspire. Dependendo do serviço de suporte, algumas integrações podem suportar apenas alguns desses recursos. Por exemplo, algumas integrações suportam registro em log e rastreamento, mas não métricas. As funcionalidades de telemetria também podem ser desativadas usando as técnicas apresentadas na secção Configuração.

Registo

A integração .NET AspireAzureOpenAI usa as seguintes categorias de log:

  • Azure
  • Azure.Core
  • Azure.Identity

Ver também