重要
Azure Functions 用の Azure OpenAI 拡張機能は現在、プレビュー段階です。
Azure Functions 用の Azure OpenAI 拡張機能では、 Azure OpenAI Service の機能と動作を関数コードの実行に簡単に統合できる一連のトリガーとバインドが実装されています。
Azure Functions は、他の Azure サービスと簡単に接続するための一連のトリガーとバインドを提供するイベントドリブンのコンピューティング サービスです。
Azure OpenAI と Functions の統合により、以下を可能にする関数を構築できます。
アクション | トリガー/バインドの種類 |
---|---|
コンテンツの入力候補に標準のテキスト プロンプトを使用する | Azure OpenAI テキスト入力候補の入力バインド |
関数を呼び出すアシスタント要求に応答する | Azure OpenAI アシスタント トリガー |
アシスタントを作成する | Azure OpenAI アシスタント作成の出力バインド |
アシスタントにメッセージを送信する | Azure OpenAI アシスタント ポストの入力バインド |
アシスタントの履歴を取得する | Azure OpenAI アシスタント クエリの入力バインド |
テキスト埋め込みを読み取る | Azure OpenAI 埋め込みの入力バインド |
ベクトル データベースに書き込む | Azure OpenAI 埋め込みストアの入力バインド |
ベクトル データベースから読み取る | Azure OpenAI セマンティック検索の入力バインド |
拡張機能のインストール
インストールする拡張機能 NuGet パッケージは、関数アプリで使用している C# モード (インプロセスまたは分離ワーカー プロセス) によって異なります。
Microsoft.Azure.Functions.Worker.Extensions.OpenAI NuGet パッケージをインストールして、プロジェクトに Azure OpenAI 拡張機能を追加します。これは、.NET CLI を使用して行うことができます。
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.OpenAI --prerelease
ベクトル データベースを使用してコンテンツを保存する場合は、次の NuGet パッケージの少なくとも 1 つをインストールする必要もあります。
- Azure AI 検索: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.AzureAISearch
- Azure Cosmos DB for MongoDB 仮想コア: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Azure Cosmos DB for NoSQL: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.CosmosDBSearch
- Azure Data Explorer: Microsoft.Azure.Functions.Worker.Extensions.OpenAI.Kusto
バンドルのインストール
プレビュー拡張機能を追加するには、 host.json
ファイルに次のコードを追加または置き換えます。これは、OpenAI 拡張機能を含む 4.x バンドルのプレビュー バージョンを具体的に対象とします。
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.*, 5.0.0)"
}
}
OpenAI への接続
Azure OpenAI バインド拡張機能を使用するには、OpenAI への接続を指定する必要があります。 この接続は、アプリケーション設定と、トリガーまたはバインドの AIConnectionName
プロパティを使用して定義されます。 環境変数を使用して、キーベースの接続を定義することもできます。
マネージド ID ベースの接続と AIConnectionName
プロパティを使用することをお勧めします。
OpenAI バインドには、Azure OpenAI への接続を定義するこのアプリ設定グループのAIConnectionName
を指定するために使用できる<ConnectionNamePrefix>
プロパティがあります。
AIConnectionName
プロパティがmyAzureOpenAI
に設定されている場合は、次のマネージド ID 接続設定を検討してください。
myAzureOpenAI__endpoint=https://contoso.openai.azure.com/
myAzureOpenAI__credential=managedidentity
myAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222
実行時に、これらの設定は、次のような単一の myAzureOpenAI
設定としてホストによってまとめて解釈されます。
"myAzureOpenAI":
{
"endpoint": "https://contoso.openai.azure.com/",
"credential": "managedidentity",
"clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}
マネージド ID を使用する場合は、必ず Cognitive Services OpenAI ユーザー ロールに ID を追加してください。
ローカルで実行する場合は、これらの設定を local.settings.json プロジェクト ファイルに追加する必要があります。 詳細については、「 ID ベースの接続を使用したローカル開発」を参照してください。
詳細については、アプリケーション設定の操作に関する記事を参照してください。