Azure AI Foundry Agent Service は Azure Functions と統合されているため、最小限のオーバーヘッドでインテリジェントなイベントドリブン アプリケーションを作成できます。 この組み合わせにより、AI 駆動型ワークフローはサーバーレス コンピューティングのスケーラビリティと柔軟性を活用でき、リアルタイム イベントや複雑なワークフローに対応するソリューションの構築とデプロイが容易になります。
Azure Functions は、トリガーとバインドのサポートを提供し、これにより AI エージェントが外部のシステムやサービスとやり取りする方法が簡略化されます。 トリガーは、関数 (HTTP 要求、キューからのメッセージ、Azure Blob Storage へのファイルのアップロードなど) をいつ実行するかを決定し、エージェントが受信イベントに基づいて動的に動作できるようにします。
一方、バインディングは、広範な定型コードを必要とせずに、データベースや API などの入力または出力データ ソースへの効率的な接続を容易にします。 たとえば、顧客メッセージがチャットボットで受信されるたびに Azure Function を実行し、出力バインドを使用して Azure AI Agent 経由で応答を送信するようにトリガーを構成できます。
サポートされているモデル
並列関数を含む関数呼び出しのすべての機能を使用するには、2023 年 11 月 6 日以降にリリースされたモデルを使用する必要があります。
[前提条件]
- Azure Functions Core Tools v4.x
- 標準セットアップを使用してデプロイされたエージェント
注
基本的なエージェントのセットアップはサポートされていません。
- アズライト
ローカル環境を準備する
次の例では、Azure AI Foundry Agent Service 関数呼び出しを使用する方法を示します。この関数呼び出しは、エージェント サービスによってストレージ キューに配置され、そのキューをリッスンしている Azure 関数によって処理されます。
使用されているテンプレートとコードは、GitHub で確認できます。
利用サポート
Azure AI Foundry のサポート | Python SDK | C# SDK | REST API | 基本エージェントのセットアップ | 標準エージェントのセットアップ |
---|---|---|---|---|---|
✔️ | ✔️ | ✔️ |
ローカルとクラウドの開発テスト用の Azure リソースを作成する
Azure サブスクリプションを取得したら、新しいターミナル ウィンドウで次を実行して、Azure OpenAI やその他の必要なリソースを作成します。
azd init --template https://github.com/Azure-Samples/azure-functions-ai-services-agent-python
Mac/Linux:
chmod +x ./infra/scripts/*.sh
ウィンドウズ:
set-executionpolicy remotesigned
リソースをプロビジョニングする
次のコマンドを実行して、Azure に必要なリソースを作成します。
azd provision
local.settings.json を作成する
注
このファイルは、host.json
と同じフォルダーにあることが必要です。 これは azd provision
を実行すると自動的に作成されます。
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "python",
"STORAGE_CONNECTION__queueServiceUri": "https://<storageaccount>.queue.core.windows.net",
"PROJECT_CONNECTION_STRING": "<project connnection for AI Project>",
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
}
}
Visual Studio Code を使用してアプリを実行する
- 新しいターミナルでフォルダーを開きます。
code .
コード コマンドを実行して、Visual Studio Code でプロジェクトを開きます。- コマンド パレット (F1) に「
Azurite: Start
」と入力します。これにより、Azure Functions ランタイムのローカル ストレージを使用したデバッグが可能になります。 - [実行/デバッグ] (F5) を押してデバッガーで実行します。 ローカル エミュレーターが実行されていないというメッセージが表示された場合は [デバッグする] を選択します。
- HTTP テスト ツールを使用して、POST
prompt
エンドポイントをそれぞれ送信します。 RestClient 拡張機能がインストールされている場合は、test.http
プロジェクト ファイルから直接要求を実行できます。
Azure にデプロイする
次のコマンドを実行して、必要な Azure リソースと共に関数アプリをプロビジョニングし、コードをデプロイします。
azd up
次の必須のデプロイ パラメーターを指定するように求められます。
パラメーター | 説明 |
---|---|
環境名 | アプリの一意のデプロイ コンテキストを維持するために使用される環境。 azd init を使用してローカル プロジェクトを作成した場合、メッセージは表示されません。 |
Azure サブスクリプション | リソースが作成されるサブスクリプション。 |
Azure の場所 を |
新しい Azure リソースを含むリソース グループを作成する Azure リージョン。 現在、Flex 従量課金プランをサポートしているリージョンのみが表示されます。 |
発行が正常に完了すると、azd
は新しい関数の URL エンドポイントを提供しますが、エンドポイントへのアクセスに必要なファンクション キーの値は提供しません。 必要なファンクション キーと共にこれらの同じエンドポイントを取得する方法については、「クイック スタート: Azure Developer CLI を使用して関数を作成して Azure Functions にデプロイする」のコンパニオン記事の「Azure 上の関数を呼び出す」を参照してください。
コードを再デプロイする
azd up
コマンドは、Azure リソースのプロビジョニングとコード更新プログラムの関数アプリへのデプロイの両方に必要な回数だけ実行できます。
注
デプロイされたコード ファイルは常に最新のデプロイ パッケージによって上書きされます。
リソースをクリーンアップする
関数アプリと関連リソースの操作が完了したら、次のコマンドを使用して関数アプリとその関連リソースを Azure から削除し、それ以上のコストが発生しないようにすることができます (--purge は、AI リソースの論理的な削除を残さず、クォータを回復します)。
azd down --purge