Интеграции ИИ

Экспериментальный пакет Microsoft.Testing.Platform.AI определяет абстракции ИИ, нейтральные от поставщика, для платформ тестирования и расширений MTP. Пакет интегрируется с Microsoft.Extensions.AI, поэтому расширение может запрашивать IChatClient, не завися от конкретного поставщика модели.

Important

API искусственного интеллекта используют идентификатор диагностики TPEXP и могут измениться в одном из будущих выпусков. Пакеты предоставляют инфраструктуру расширениям; Они не добавляют поведение ИИ в набор тестов самостоятельно.

Выбор пакетов

Добавьте пакет абстракций при создании расширения, использующее клиент чата. Добавьте пакет поставщика в тестовое приложение, в котором размещено расширение:

dotnet add package Microsoft.Testing.Platform.AI
dotnet add package Microsoft.Testing.Extensions.AzureFoundry

Microsoft.Testing.Extensions.AzureFoundry— это поставщик ссылок, предоставленный Microsoft. Он создает клиент чата OpenAI Azure через Azure AI Foundry.

Настройка Azure AI Foundry

Задайте следующие переменные среды:

Variable Обязательный Описание
AZURE_OPENAI_ENDPOINT Да Конечная точка ресурса Azure OpenAI, например https://my-resource.openai.azure.com.
AZURE_OPENAI_DEPLOYMENT_NAME Да Имя развертывания модели.
AZURE_OPENAI_API_KEY Conditional Ключ API ресурсов. Укажите это значение, если не регистрируете TokenCredential в коде.

Чтобы сохранить учетные данные вне системы управления версиями, укажите эти значения через локальную среду или защищенное хранилище секретов CI.

Регистрация поставщика.

Отключите созданную точку входа MTP и зарегистрируйте поставщика в пользовательском Main методе. Для аутентификации с помощью API-ключа вызовите:

#pragma warning disable TPEXP
builder.AddAzureOpenAIChatClientProvider();
#pragma warning restore TPEXP

Для Microsoft Entra ID или управляемой идентификации используйте пакет Azure.Identity и передайте учетные данные:

using Azure.Identity;

#pragma warning disable TPEXP
builder.AddAzureOpenAIChatClientProvider(new DefaultAzureCredential());
#pragma warning restore TPEXP

Если задан параметр AZURE_OPENAI_API_KEY, поставщик использует ключ API раньше, чем предоставленные учетные данные. Разрешение учетных данных и проверка подлинности возникают при выполнении первого запроса чата, поэтому ошибки конфигурации могут не отображаться во время регистрации поставщика.

Используйте чат-клиент

Реализуйте IChatClientProvider для интеграции другого поставщика ИИ. Расширение MTP может получить зарегистрированный клиент чата из его IServiceProvider:

IChatClient? client =
    await serviceProvider.GetChatClientAsync(cancellationToken);

Вызов возвращает null, если не зарегистрирован ни один доступный поставщик. Прежде чем расширение отправляет тестовые данные в модель, задокументируйте, какие данные она отправляет и применяет требования к конфиденциальности, безопасности и хранению для данных.

См. также