公開され次第アップデート予定です。
今回のアーキテクチャーは以下の通りです。
簡単な流れは以下の通りです。
- ユーザーが Azure Communication Service に登録された電話番号に架電する。
- Azure Communication Servicce の Incoming Call をトリガーとしてサーバーサイドアプリケーションの API に Webhook を実行する。
- Webhook 要求にサーバーサイドアプリケーションが応答する。
- ユーザー発話内容に基づいて Azure Cognitive Service が Speech-to-Text、Azure OpenAI Service からの応答内容に基づいて Text-to-Speech を実行する。
- ユーザー発話内容に基づいて Azure OpenAI Service が回答内容を生成する。
以下を構成、実装する事で動作確認用環境の構成が可能です。
-
手順ページに則り、Azure AI multi-service account リソースを作成します。
-
Azure ポータルより作成した Azure AI multi-service account リソースの [ENDPOINT]値をコピーします。
- 手順ページに則り、Azure Communication Service 向け Event Grid System topic リソースを作成します。
-
手順ページに則り、Azure Communication Service リソースを作成します。
-
手順ページに則り、接続文字列をコピーします。
-
手順ページに則り、電話番号を取得します。
-
手順ページに則り、Azure AI Service へのアクセス許可を Azure Communication Service マネージド ID に与えます。
-
手順ページに則り、DevTunnel CLI をインストールします。
-
以下コマンドを実行し、DevTunnel をホストします。
devtunnel create --allow-anonymous devtunnel port create -p 5165 devtunnel host
出力された[Connect via browser:]に続く URL 値をコピーします。
-
事前に作成した Event Grid System topic リソースのイベントサブスクリプションを以下のような設定値で作成します。
-
Event Grid System topic リソースの追加イベントサブスクリプションを以下のような設定値で作成します。
[appsettings.json]ファイルを以下の通り環境値に置き換えます。
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"DevTunnelUri": "コピーした Azure DevTunnel URL",
"CognitiveServiceEndpoint": "Azure AI multi-service account の Endpoint",
"AcsConnectionString": "Azure Communication Service の接続文字列",
"AzureOpenAIServiceKey": "AOAI KEY",
"AzureOpenAIServiceEndpoint": "AOAI ENDPOINT",
"AzureOpenAIDeploymentModelName": "AOAI モデル名",
"BlobConnectionString": "Azure Storage の接続文字列",
"FunctionsEndpoint": "Function URL"
}
-
取得した電話番号に対して架電を行います。
-
任意の質問を問いかけ、日本語で応答があれば動作確認完了です。