Поделиться через


интеграция .NET AspireAzureOpenAI

Из этой статьи вы узнаете, как использовать .NET AspireAzureOpenAIclient. Библиотека Aspire.Azure.AI.OpenAI используется для регистрации OpenAIClient в контейнере внедрения зависимостей (DI) для использования функций AzureOpenAI или OpenAI. Он включает соответствующее ведение журнала и телеметрию.

Для получения дополнительной информации об использовании OpenAIClient, см. раздел «. Быстрый старт: начало создания текста с использованием службы 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...
}

Использование хоста приложения

Чтобы добавить поддержку размещения в , установите .Hosting..CognitiveServices пакет NuGet в проекте приложения .

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 или строкой подключения с ключом учетной записи.

Конечная точка учетной записи

Рекомендуется использоватьконечной точки , которая работает со свойством для установления подключения. Если учетные данные не настроены, используется DefaultAzureCredential.

{
  "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

См. также