1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

簡易コールセンターをAmazon Lex、Amazon Polly、Amazon Connectを使って構築してみた

Posted at

はじめに

AIの活用法が次々と生まれている中で、AIとAWSを融合させればおもしろいことができるのではないかと思い、その前段階として、まずはAWSのみで簡単な対応しかできない簡易コールセンターを構築してみました。

完成イメージ

スクリーンショット 2023-11-11 173521.png

事前準備

Amazon Connectインスタンスの作成

Amazon Connectのコンソール画面に遷移し、インスタンスを追加するを押下します。

ステップ1

スクリーンショット 2023-11-11 074309.png

  • ID管理の項目で、Amazon Connectにユーザーを保存を選択します。
  • アクセスURLには一意なインスタンス名を入力します。
  • 次へを押下します。

ステップ2

スクリーンショット 2023-11-11 074152.png

  • 管理者を指定を選択します。
  • ユーザー名などを入力します。
  • 次へを押下します。

ステップ3

スクリーンショット 2023-11-11 074549.png

  • 着信と発信の両方を許可します。
  • 次へを押下します。

ステップ4

スクリーンショット 2023-11-11 074809.png

  • Customer Profiles を有効化のチェックを外します。
  • 次へを押下します。

ステップ5

  • すべての設定と情報を確認します。
  • インスタンスの作成を押下してインスタンスを作成します。

正常に終了しました。と表示されたら成功です。

Amazon Connectの開始

スクリーンショット 2023-11-11 080126.png

今すぐ始めるを押下すると、Amazon Connectのダッシュボードが別のブラウザタブで表示されます。
言語を日本語にします。
この画面の今すぐ始めるを押下します。

電話番号の取得

スクリーンショット 2023-11-11 080835.png

  • 電話番号を取得可能な国を選択します。※日本の電話番号を取得する場合は、AWS サポートからリクエストし、必要書類を提出する必要があります。
  • タイプは DID (直通ダイヤル) を選択し、表示されるリストから番号を選択します。
  • 次へを選択します。
    ※マイクへのアクセスを許可を求めるメッセージが表示された場合は、オーディオデバイスを確認し、許可を選択してください。
  • 次へを選択します。
  • ダイアログに表示される指示に従って、Amazon Connect インスタンスへの着信通話をテストします。
  • テストが完了したら、次へを選択します。

Amazon Polly と Amazon Lex によるインタラクティブな対話

Lex ボットの作成

Lexのコンソール画面に行き、ボットを作成を押下します。

ボット設定を構成

スクリーンショット 2023-11-11 115356.png

  • 空のボットを選択します。を選択します。
  • 今回ボット名は、PizzaOrder と入力します。

スクリーンショット 2023-11-11 115844.png

IAM アクセス許可 画面で、基本的な Amazon Lex 権限を持つロールを作成します。を選択します。

スクリーンショット 2023-11-11 120136.png

  • 児童オンラインプライバシー保護法 (COPPA) については、いいえを選択します。
  • アイドルセッションのタイムアウトは、デフォルト値のまま5分とします。
  • 詳細設定 - オプションはデフォルトのまま、次へを押下します。

ボットに言語を追加

スクリーンショット 2023-11-11 120433.png

  • 言語を選択は、日本語 (JP)を選択します。
  • 音声による対話 は、ニューラルテキスト読み上げの音声の Takumiを選択します。
  • インテント分類信頼スコアのしきい値は、デフォルト値のまま0.40とします。
  • 完了を押下します。
  • ボット (PizzaOrder) が正常に作成されましたと表示されれば成功です。

インテントの作成

スクリーンショット 2023-11-11 120810.png

  • インテント名にGetPizzaOrderと入力します。

スクリーンショット 2023-11-11 121156.png

  • プレーンテキストに下記テキストを貼り付け、プレビューを表示します。
ピザを注文したい
ピザを注文する
ピザをください
  • スロットセクションは、次のセクションでカスタムスロットのタイプを最初に設定するため、空のままにしておきます。
  • インテントを保存を押下します。

スクリーンショット 2023-11-11 121421.png

  • Amazon Lex のナビゲーションメニューで、インテントリストに戻るを選択します。

スロットタイプの作成

スクリーンショット 2023-11-11 121558.png

  • スロットタイプを選択します。
  • カスタムスロットタイプを構築するため、スロットタイプを追加を選択します。
  • 空のスロットタイプを追加を選択します。

スクリーンショット 2023-11-11 121809.png

  • ダイアログボックスが表示されたら、スロットタイプ名に PizzaSize と入力し、追加を選択します。

スクリーンショット 2023-11-11 122248.png

  • スロット値の解決でスロット値に制限を選択します。
  • スロットタイプ値の下に、次の値のタイプを入力して価値を追加を選択します。
    スモール
    ミディアム
    ラージ
    また、類似の発言を認識するため、画像のように値も追加します。
  • スロットタイプを保存を選択します。

前のステップを繰り返して、PizzaCrust と PizzaToppings の2つのスロットタイプを作成します。

ボットスロットの追加

Amazon Lex のナビゲーションメニューで、スロットタイプを選択します。
インテントを選択し、先ほど作成したGetPizzaOrder
を選択します。

スクリーンショット 2023-11-11 123212.png
スロットの項目までスクロールし、スロットの追加
を選択します。

スクリーンショット 2023-11-11 123421.png

  • スロットを追加ウィンドウで、前の手順で作成したスロットに関する詳細を入力します(下記表参照)。
  • このインデントには必須チェックボックスにはすべてチェックを入れます。
名前 スロットタイプ プロンプト
PizzaSize PizzaSize ご希望のサイズをお知らせください
PizzaToppings PizzaToppings お好みのトッピングをお知らせください
PizzaCrust PizzaCrust お好みの生地をお知らせください

スクリーンショット 2023-11-11 124007.png
スロットセクションに、作成した3つのスロットが含まれていることを確認できます。

スクリーンショット 2023-11-11 124421.png
フルフィルメントのフルフィルメントが成功した場合の項目で、以下のように入力します。

ご注文を確認します。ピザのサイズは {PizzaSize}、生地は {PizzaCrust}、トッピングは {PizzaToppings}、以上でご注文頂きました。

インテントの保存を押下します。

スクリーンショット 2023-11-11 124709.png

Buildを押下すると、設定したボットの構築処理が開始します。

ボット (日本語 (JP)) で言語 PizzaOrder が正常に構築されましたと表示されれば成功です。

ボットのテスト

Testを押下すると、ボットテスト用インタフェースが開きます。

スクリーンショット 2023-11-11 125647.png
テスト用インターフェイスを使用して、テスト用の発話を入力し、ボットが想定通りに応答するかどうかを確認することができます。

新しいボットバージョンとエイリアスの公開

Amazon Lex のナビゲーションメニューで、インテントリストに戻るを選択し、ボットのバージョンを選択します。
スクリーンショット 2023-11-11 130033.png
既存のボットの新しいバージョンを作成するため、バージョンを作成を選択します。

スクリーンショット 2023-11-11 130541.png
バージョンを作成画面で、作成を選択します。

1 のバージョン PizzaOrder が正常に作成されましたと表示されれば成功です。

スクリーンショット 2023-11-11 130717.png
次に、デプロイ用の新しいエイリアスを作成する必要があります。
ナビゲーションメニューから、エイリアスを選択し、エイリアスを作成を選択します。

スクリーンショット 2023-11-11 130856.png
エイリアスを作成画面で、エイリアス名に PizzaOrderProd を入力します。

スクリーンショット 2023-11-11 131013.png
バージョンに関連付ける - オプションで、前の手順で作成したバージョンを選択し、作成を押下します。

エイリアス (PizzaOrderProd) を正常に作成しましたと表示されれば成功です。
エイリアス名は、Amazon Connect でボットを設定する際に使用しますので、メモしておきます。

Amazon Connect インスタンスに Amazon Lex ボットを追加

Amazon Connect インスタンスにボットを追加

  • Amazon Connect サービスを開きます。
  • ボットを追加するインスタンスの Amazon Connect インスタンスエイリアスを選択します。
  • 左側のナビゲーションバーで問い合わせフローを選択します。

スクリーンショット 2023-11-11 154615.png
Amazon Lex のセクションで、PizzaOrderボットを作成したリージョンとボット名、作成したエイリアスを選択します。
次に、Amazon Lex ボットを追加を選択します。

スクリーンショット 2023-11-11 154755.png
PizzaOrderのボットが、Lex ボットの一覧に表示されます。
これにより、Amazon Connect のコンタクトフローに Lex ボットを統合することができます。
ここまでの手順で、Amazon Connect インスタンスにボットの追加を完了しました。

Lex ボットを使用したコンタクトフローの構築

コンタクトフローの作成

AWS コンソールの Amazon Connect サービスから概要にあるリンクをたどり、Amazon Connect のコンソールを開きます。
スクリーンショット 2023-11-11 155049.png
ルーティングからフローのページに切り替え、フローの作成を選択します。

スクリーンショット 2023-11-11 155629.png
名前の入力欄に、PizzaOrder_Flow と入力します。
ログ記録動作の設定ブロックをデザインペイン上に移動し、エントリポイントブロックに接続します。
音声の設定ブロックをデザインペイン上に移動し、ログ記録動作の設定ブロックの成功に接続します。

スクリーンショット 2023-11-11 160029.png
音声の設定ブロックをクリックして編集します。

  • 言語は、ドロップダウンから日本語を選択します。
  • 音声は、Takumiを選択します。
  • 発話スタイルを上書き - ニューラル チェックボックスを選択し、ニューラル発話スタイル:なし を選択します。
  • 言語属性を設定 を選択します。
  • 保存 を押下します。

顧客の入力を取得するブロックをデザインペイン上に移動し、音声の設定ブロックの成功に接続します。

スクリーンショット 2023-11-11 160443.png
顧客の入力を取得ブロックを編集します。
テキスト読み上げまたはチャットテキストを選択し、山田ピザにお電話ありがとうございます。どのようなご用件でしょうか?と入力します。

Amazon Lex タブを選択し、名前のドロップダウンから PizzaOrderボットを選択します。

スクリーンショット 2023-11-11 160730.png

  • エイリアスは PizzaOrderProd を選択します。
  • インテントの追加をクリックし、GetPizzaOrder と入力します。
  • 保存 を押下します。

コンタクト属性の設定ブロックをデザインペイン上に移動します。
顧客の入力を取得するブロックのGetPizzaOrder の出力に接続します。

スクリーンショット 2023-11-11 161629.png
コンタクト属性の設定ブロックを編集します。

  • 名前空間 を ユーザー定義済 として選択します。
  • キーに Size と入力します。
  • 値に 手動で設定を選択し、$.Lex.Slots.PizzaSize と入力します。
  • 別の属性の追加を2回選択して、上の手順と同様にCrust 属性と $.Lex.Slots.CrustToppings 属性と$.Lex.Slots.Toppingsの2つを追加します。
  • 完了したら、保存を押下します。

プロンプトの再生ブロックをデザインペインに移動します。
コンタクト属性の設定ブロックからの 成功エラー 出力に接続します。

スクリーンショット 2023-11-11 162026.png
プロンプトの再生ブロックを編集します。

  • テキスト読み上げまたはチャットテキストを選択し、できたての $.Attributes.Size $.Attributes.Crust ピザを15分後にお届けします。ご注文ありがとうございました。というテキストを入力します。
  • 保存を押下します。

プロンプトの再生ブロックをもう一つデザインペインに追加します。
顧客の入力を取得するブロックのデフォルトおよびエラー出力に接続します。

スクリーンショット 2023-11-11 162411.png
プロンプトの再生ブロックを編集します。

  • テキスト読み上げまたはチャットテキストを選択し、申し訳ありません。エラーが発生しました。もう一度おかけ直しください。というテキストを入力します。
  • 保存を押下します。

切断ブロックをデザインペイン上に移動し、プロンプトの再生ブロックの成功エラー両方の出力に接続します。
これを2つのプロンプトの再生ブロックの両方に対して行います。

スクリーンショット 2023-11-11 162716.png
コンタクトフローが完成しました。
想定通りのフローか確認し、右上の公開を押下します。

コンタクトフローへの電話番号割り当て

画面左側のナビゲーションバーで チャネル > 電話番号 を選択します。

スクリーンショット 2023-11-11 163132.png

  • インスタンスに割り当てられた電話番号を選択し、前のステップで作成した PizzaOrder_Flow を選択します。
  • 保存を選択します。

顧客体験のテスト

割り当てた電話番号に電話をかけます。
すると、ピザが注文(!?)できるようになっています。

ここまでの手順で、Lex ボットを利用したコンタクトフローの構築が完了しました。

まとめ

無事に簡易コールセンターを構築することができました。
ゆくゆくはChatGPTをかけあわせて何か作りたいと思います。

※参照
AWS Workshop studio

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?