интеграция .NET AspireAzureOpenAI
Из этой статьи вы узнаете, как использовать .NET AspireAzureOpenAIclient. Библиотека Aspire.Azure.AI.OpenAI
используется для регистрации OpenAIClient
в контейнере внедрения зависимостей (DI) для использования функций AzureOpenAI или OpenAI. Он включает соответствующее ведение журнала и телеметрию.
Для получения дополнительной информации об использовании OpenAIClient
, см. раздел «. Быстрый старт: начало создания текста с использованием службы AzureOpenAI».
Начало работы
- подписка Azure: создать ее бесплатно.
- Azure OpenAI или учетная запись OpenAI: создать ресурс службы AzureOpenAI.
Чтобы приступить к работе с интеграцией .NET AspireAzureOpenAI, установите 📦Aspire.Azure.AI.OpenAI пакет NuGet в проект, потребляющий client, т. е. проект для приложения, использующего AzureOpenAIclient.
dotnet add package Aspire.Azure.AI.OpenAI
Дополнительные сведения см. в статье dotnet add package или Управление зависимостями пакетов в приложениях .NET.
Пример использования
В файле Program.cs вашего client-консумирующего проекта вызовите метод расширения, чтобы зарегистрировать OpenAIClient
для использования через контейнер внедрения зависимостей. Метод принимает параметр имени подключения.
builder.AddAzureOpenAIClient("openAiConnectionName");
В приведенном выше коде метод AddAzureOpenAIClient
добавляет OpenAIClient
в контейнер DI. Параметр openAiConnectionName
— это имя строки подключения в конфигурации. Затем можно получить объект OpenAIClient
с помощью внедрения зависимостей. Например, чтобы получить подключение из примера службы:
public class ExampleService(OpenAIClient client)
{
// Use client...
}
Использование хоста приложения
Чтобы добавить поддержку размещения
dotnet add package Aspire.Hosting.Azure.CognitiveServices
В проекте узла приложения зарегистрируйте ресурс AzureOpenAI с помощью следующих методов, таких как AddAzureOpenAI:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.ExecutionContext.IsPublishMode
? builder.AddAzureOpenAI("openAiConnectionName")
: builder.AddConnectionString("openAiConnectionName");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
Метод AddAzureAIOpenAI
считывает сведения о подключении из конфигурации узла приложения (например, из "секретов пользователя") под ключом конфигурации ConnectionStrings:openAiConnectionName
. Метод WithReference передает эти сведения о подключении в строку подключения с именем openAiConnectionName
в проекте ExampleProject
. В файле Program.cs проекта ExampleProject подключение можно использовать через:
builder.AddAzureAIOpenAI("openAiConnectionName");
Конфигурация
Интеграция .NET AspireAzureOpenAI предоставляет несколько вариантов настройки подключения на основе требований и соглашений проекта.
Используйте строку подключения
При использовании строки подключения из раздела конфигурации ConnectionStrings
можно указать имя строки подключения при вызове builder.AddAzureAIOpenAI
:
builder.AddAzureAIOpenAI("openAiConnectionName");
Строка подключения извлекается из раздела конфигурации ConnectionStrings
и имеется два поддерживаемых формата: конечная точка учетной записи, используемая в сочетании с учетными данными по умолчанию Azure или строкой подключения с ключом учетной записи.
Конечная точка учетной записи
Рекомендуется использоватьконечной точки
{
"ConnectionStrings": {
"openAiConnectionName": "https://{account_name}.openai.azure.com/"
}
}
Дополнительные сведения см. в разделе Использование AzureOpenAI без ключей.
Строка подключения
Кроме того, можно использовать настраиваемую строку подключения.
{
"ConnectionStrings": {
"openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
}
}
Чтобы подключиться к службе, отличной отAzureOpenAI, удалите свойство Endpoint
и задайте только свойство Key, чтобы задать ключ API .
Использование поставщиков конфигураций
Интеграция .NET AspireAzureOpenAI поддерживает Microsoft.Extensions.Configuration. Он загружает AzureOpenAISettings
из конфигурации с помощью ключа Aspire:Azure:AI:OpenAI
. Пример appsettings.json, который настраивает некоторые параметры:
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
Использование встроенных делегатов
Кроме того, можно передать делегат Action<AzureOpenAISettings> configureSettings
для настройки некоторых или всех параметров непосредственно в коде, например, чтобы в случае необходимости отключить трассировку.
builder.AddAzureAIOpenAI(
"openAiConnectionName",
static settings => settings.DisableTracing = true);
Вы также можете настроить OpenAIClientOptions с помощью необязательного параметра Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder
метода AddAzureAIOpenAI
. Например, чтобы задать идентификатор client для этого client:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Наблюдаемость и телеметрия
.NET
.NET Aspire интеграции автоматически настраивают конфигурации логирования, трассировки и метрик, которые иногда называют пилонами наблюдаемости. Дополнительные сведения об наблюдаемости интеграции и телеметрии см. в .NET.NET Aspire обзоре интеграции. В зависимости от резервной службы некоторые интеграции могут поддерживать только некоторые из этих функций. Например, некоторые интеграции поддерживают ведение журнала и трассировку, но не метрики. Функции телеметрии также можно отключить с помощью методов, представленных в разделе конфигурации
Лесозаготовка
Интеграция .NET AspireAzureOpenAI использует следующие категории журналов:
Azure
Azure.Core
Azure.Identity
См. также
.NET Aspire