.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
- Azure subscrição: crie uma gratuitamente.
- Azure OpenAI ou OpenAI conta: criar um recurso do Serviço AzureOpenAI.
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.
- .NET CLI
- ReferênciaDePacotes
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ã .
- .NET CLI
- PackageReference
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