.NET Aspire Azure OpenAI 統合
この記事では、.NET AspireAzureOpenAIclientの使用方法について説明します。
Aspire.Azure.AI.OpenAI
ライブラリは、AzureOpenAI または OpenAI 機能を使用するために、依存関係挿入 (DI) コンテナーに OpenAIClient
を登録するために使用されます。 対応するログ記録とテレメトリが有効になります。
OpenAIClient
の使用方法の詳細については、「クイック スタート: AzureOpenAI Serviceを使用したテキストの生成を開始する」を参照してください。
作業の開始
- Azure サブスクリプション: 無料の用に作成します。
- Azure OpenAI または OpenAI アカウント: AzureOpenAI サービス リソースを作成。
.NET Aspire Azure OpenAI 統合を開始するには、📦Aspireをインストールします。Azure.人工知能。clientを使用するプロジェクト (つまり、AzureOpenAIclientを使用するアプリケーションのプロジェクト) に NuGet パッケージをOpenAI します。
dotnet add package Aspire.Azure.AI.OpenAI
詳細については、「dotnet パッケージ の追加」または「.NET アプリケーションでのパッケージの依存関係の管理」を参照してください。
使用例
client-consuming プロジェクトの Program.cs ファイルで、依存性注入コンテナを通じて使用するための OpenAIClient
を登録する拡張メソッドを呼び出します。 このメソッドは、接続名パラメーターを受け取ります。
builder.AddAzureOpenAIClient("openAiConnectionName");
前のコードでは、AddAzureOpenAIClient
メソッドは DI コンテナーに OpenAIClient
を追加します。
openAiConnectionName
パラメーターは、構成内の接続文字列の名前です。 その後、依存関係の挿入を使用して OpenAIClient
インスタンスを取得できます。 たとえば、サービスの例から接続を取得するには、次のようにします。
public class ExampleService(OpenAIClient client)
{
// Use client...
}
アプリ ホストの使用状況
IDistributedApplicationBuilderに Azure ホスティングサポートを追加するには、📦Aspire.Hosting.Azure.CognitiveServices. NuGet パッケージを アプリホスト プロジェクトにインストールします。
dotnet add package Aspire.Hosting.Azure.CognitiveServices
アプリ ホスト プロジェクトで、AddAzureOpenAIなどの次の方法を使用して、AzureOpenAI リソースを登録します。
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 メソッドは、その接続情報を、ExampleProject
プロジェクトの openAiConnectionName
という名前の接続文字列に渡します。 ExampleProject の Program.cs ファイルでは、次を使用して接続を使用できます。
builder.AddAzureAIOpenAI("openAiConnectionName");
設定
.NET Aspire Azure OpenAI 統合には、プロジェクトの要件と規則に基づいて接続を構成するための複数のオプションが用意されています。
接続文字列を使用する
ConnectionStrings
構成セクションの接続文字列を使用する場合は、builder.AddAzureAIOpenAI
を呼び出すときに接続文字列の名前を指定できます。
builder.AddAzureAIOpenAI("openAiConnectionName");
接続文字列は ConnectionStrings
構成セクションから取得され、既定の Azure 資格情報と組み合わせて使用されるアカウント エンドポイントか、アカウント キーを持つ接続文字列の 2 つの形式がサポートされています。
アカウント エンドポイント
推奨される方法は、エンドポイントを使用することです。これは、AzureOpenAISettings.Credential
プロパティと連携して接続を確立します。 資格情報が構成されていない場合は、DefaultAzureCredential が使用されます。
{
"ConnectionStrings": {
"openAiConnectionName": "https://{account_name}.openai.azure.com/"
}
}
詳細については、「キーをせずに AzureOpenAI を使用する」を参照してください。
接続文字列
または、カスタム接続文字列を使用することもできます。
{
"ConnectionStrings": {
"openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
}
}
Azure
OpenAI 以外のサービスに接続するには、Endpoint
プロパティを削除し、key プロパティのみを設定して、API キー設定します。
構成プロバイダーを使用する
.NET Aspire
Azure
OpenAI 統合では、Microsoft.Extensions.Configurationがサポートされています。
Aspire:Azure:AI:OpenAI
キーを使用して、構成から AzureOpenAISettings
を読み込みます。 いくつかのオプションを構成する appsettings.json の例:
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
インライン デリゲートを使用する
また、Action<AzureOpenAISettings> configureSettings
デリゲートを渡して、コードからのトレースを無効にするなど、一部またはすべてのオプションをインラインで設定することもできます。
builder.AddAzureAIOpenAI(
"openAiConnectionName",
static settings => settings.DisableTracing = true);
また、AddAzureAIOpenAI
メソッドの省略可能な Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder
パラメーターを使用して、OpenAIClientOptions を設定することもできます。 たとえば、この clientの client ID を設定するには、
builder.AddAzureAIOpenAI(
"openAiConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
可観測性とテレメトリ
伐採
.NET Aspire Azure OpenAI 統合では、次のログ カテゴリが使用されます。
Azure
Azure.Core
Azure.Identity
参照
.NET Aspire