Ignite Japan 2023

公開され次第アップデート予定です。

アーキテクチャー

今回のアーキテクチャーは以下の通りです。

00

簡単な流れは以下の通りです。

  1. ユーザーが Azure Communication Service に登録された電話番号に架電する。
  2. Azure Communication Servicce の Incoming Call をトリガーとしてサーバーサイドアプリケーションの API に Webhook を実行する。
  3. Webhook 要求にサーバーサイドアプリケーションが応答する。
  4. ユーザー発話内容に基づいて Azure Cognitive Service が Speech-to-Text、Azure OpenAI Service からの応答内容に基づいて Text-to-Speech を実行する。
  5. ユーザー発話内容に基づいて Azure OpenAI Service が回答内容を生成する。

構成手順

以下を構成、実装する事で動作確認用環境の構成が可能です。

事前準備

Azure Open AI リソースの作成

  1. 手順ページに則り、Azure Open AI Service リソースを作成します。

  2. 手順ページに則り、モデルを作成します。

    ※本サンプルでは gpt-35-turbo-16k を利用しました。

Azure AI multi-service account リソースの作成

  1. 手順ページに則り、Azure AI multi-service account リソースを作成します。

  2. Azure ポータルより作成した Azure AI multi-service account リソースの [ENDPOINT]値をコピーします。

Event Grid System topic リソースの作成

  1. 手順ページに則り、Azure Communication Service 向け Event Grid System topic リソースを作成します。

Azure Communication Service リソースの作成

  1. 手順ページに則り、Azure Communication Service リソースを作成します。

  2. 手順ページに則り、接続文字列をコピーします。

  3. 手順ページに則り、電話番号を取得します。

  4. 手順ページに則り、Azure AI Service へのアクセス許可を Azure Communication Service マネージド ID に与えます。

Azure DevTunnel の構成

  1. 手順ページに則り、DevTunnel CLI をインストールします。

  2. 以下コマンドを実行し、DevTunnel をホストします。

    devtunnel create --allow-anonymous
    devtunnel port create -p 5165
    devtunnel host

    出力された[Connect via browser:]に続く URL 値をコピーします。

  3. 事前に作成した Event Grid System topic リソースのイベントサブスクリプションを以下のような設定値で作成します。

    01

  4. Event Grid System topic リソースの追加イベントサブスクリプションを以下のような設定値で作成します。

    01-01

実行

構成ファイルの定義

[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"
}

アプリケーションの実行

  1. ルートフォルダーで以下コマンドを実行します。

    dotnet run
  2. 以下のような出力が表示されるとサーバーサイドアプリケーションの実行完了です。

    02

動作確認

  1. 取得した電話番号に対して架電を行います。

  2. 任意の質問を問いかけ、日本語で応答があれば動作確認完了です。