integração .NET AspireAzureOpenAI
Neste artigo, você aprenderá a usar o .NET AspireAzureOpenAIclient. A biblioteca Aspire.Azure.AI.OpenAI
é usada para registrar um OpenAIClient
no contêiner de injeção de dependência (DI) para consumir AzureOpenAI ou funcionalidade de OpenAI. Ele habilita o registro em log e a telemetria correspondente.
Para obter mais informações sobre como usar o OpenAIClient
, consulte Início Rápido: Introdução à geração de texto usando AzureOpenAI Service.
Começar
- Azure assinatura: crie um gratuitamente.
- Azure OpenAI ou OpenAI conta: criar umde recurso do Serviço AzureOpenAI.
Para começar a usar a integração .NET AspireAzureOpenAI, instale o pacote NuGet 📦Aspire.Azure.AI.OpenAI no projeto consumidor de client, ou seja, o projeto do aplicativo que usa o AzureOpenAIclient.
dotnet add package Aspire.Azure.AI.OpenAI
Para obter mais informações, consulte dotnet add package ou Gerenciar dependências de pacotes em .NET applications.
Exemplo de uso
No arquivo Program.cs do seu projeto que consome client, chame o método de extensão para registrar um OpenAIClient
para uso por meio 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 de DI. O parâmetro openAiConnectionName
é o nome da cadeia de conexão na configuração. Em seguida, você pode recuperar a instância de 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...
}
Uso do host do aplicativo
Para adicionar Azure suporte de hospedagem ao seu IDistributedApplicationBuilder, instale o 📦Aspire.Hosting.Azure.CognitiveServices pacote NuGet no projeto do host do aplicativo .
dotnet add package Aspire.Hosting.Azure.CognitiveServices
No projeto de host do 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á informações de conexão da configuração do host do aplicativo (por exemplo, de "segredos do usuário") na 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 acessada utilizando:
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 ConnectionStrings
, você pode fornecer o nome da cadeia de conexão ao chamar builder.AddAzureAIOpenAI
:
builder.AddAzureAIOpenAI("openAiConnectionName");
A string de conexão é recuperada da seção de configuração ConnectionStrings
, e há dois formatos com suporte: o endpoint da conta usado em conjunto com a credencial padrão de Azure ou uma string de conexão com a chave da conta.
Ponto de extremidade 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 as teclas.
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 nãoAzureOpenAI, remova a propriedade Endpoint
e configure apenas a propriedade Chave para inserir a chave de API .
Usar provedores de configuração
A integração .NET AspireAzureOpenAI dá suporte a Microsoft.Extensions.Configuration. Ele carrega AzureOpenAISettings
a partir da configuração usando a chave Aspire:Azure:AI:OpenAI
. Exemplo appsettings.json que configura algumas das opções:
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
Usar delegados embutidos
Além disso, você pode passar o delegado Action<AzureOpenAISettings> configureSettings
para configurar algumas ou todas as opções diretamente no código, por exemplo, para desabilitar o rastreamento no 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 a 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 configurações de Log, Rastreamento e Métricas, que às vezes são conhecidas como os pilares da observabilidade. Para obter mais informações sobre a observabilidade e a telemetria de integração, consulte .NET.NET Aspire visão geral das integrações. Dependendo do serviço de backup, algumas integrações só podem dar suporte a alguns desses recursos. Por exemplo, algumas integrações dão suporte a registro em log e rastreamento, mas não a métricas. Os recursos de telemetria também podem ser desabilitados usando as técnicas apresentadas na seção Configuration.
Registro
A integração .NET AspireAzureOpenAI usa as seguintes categorias de log:
Azure
Azure.Core
Azure.Identity