試験的な Microsoft.Testing.Platform.AI パッケージでは、テスト フレームワークと MTP 拡張機能のプロバイダーに依存しない AI 抽象化を定義します。 パッケージは Microsoft.Extensions.AIと統合されるため、拡張機能は特定のモデル プロバイダーに依存せずに IChatClient を要求できます。
Important
AI API では、 TPEXP 診断 ID が使用され、将来のリリースで変更される可能性があります。 パッケージは拡張機能にインフラストラクチャを提供します。テスト スイートに AI の動作を単独で追加することはありません。
パッケージを選択する
チャット クライアントを使用する拡張機能を作成するときに、抽象化パッケージを追加します。 拡張機能をホストするテスト アプリケーションにプロバイダー パッケージを追加します。
dotnet add package Microsoft.Testing.Platform.AI
dotnet add package Microsoft.Testing.Extensions.AzureFoundry
Microsoft.Testing.Extensions.AzureFoundryは、Microsoft提供される参照プロバイダーです。 Azure AI Foundryを使用して、Azure OpenAI チャット クライアントを作成します。
Azure AI Foundryの構成
以下の環境変数を設定します。
| Variable | 必須 | Description |
|---|---|---|
AZURE_OPENAI_ENDPOINT |
はい |
https://my-resource.openai.azure.comなどの Azure OpenAI リソース エンドポイント。 |
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またはマネージド ID の場合は、Azure.Identity パッケージを参照し、資格情報を渡します。
using Azure.Identity;
#pragma warning disable TPEXP
builder.AddAzureOpenAIChatClientProvider(new DefaultAzureCredential());
#pragma warning restore TPEXP
AZURE_OPENAI_API_KEYが設定されている場合、プロバイダーは指定された資格情報の前に API キーを使用します。 資格情報の解決と認証は、最初のチャット要求の実行時に発生するため、プロバイダーの登録中に構成エラーが表示されない可能性があります。
チャットクライアントを利用する
IChatClientProviderを実装して、別の AI プロバイダーを統合します。 MTP 拡張機能は、登録されたチャット クライアントを IServiceProviderから取得できます。
IChatClient? client =
await serviceProvider.GetChatClientAsync(cancellationToken);
この呼び出しは、使用可能なプロバイダーが登録されていない場合に null を返します。 拡張機能がテスト データをモデルに送信する前に、送信するデータを文書化し、そのデータのプライバシー、セキュリティ、保持の要件を適用します。
こちらも参照ください
.NET