48
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アイレット株式会社Advent Calendar 2024

Day 10

予約システムに名前を認識してもらえなかったのでAmazon Connectで作ってみた

Posted at

はじめに

アイレット株式会社アドベントカレンダー10日目です!

タイトルの通り、とあるお店の電話予約のシステムに名前を認識してもらえなかったのでAmazon Connect+Amazon Lexで自分の名前を正しく認識してくれるものを作ってみようという記事です!

(大木で予約しようとしたところ何度も「大きい様でよろしかったでしょうか。」と聞き返され、結局店員さんに直接つないでもらう羽目になりました......)

利用サービス

今回はAWSのコンタクトセンター構築サービスのAmazon Connectと対話型bot作成サービスのAmazon Lexを組み合わせて自動応答してくれる予約システムを作ります。

Amazon Connect
https://docs.aws.amazon.com/connect/

Amazon Lex
https://docs.aws.amazon.com/lex/

利用料金

Amazon Connectの利用料金は以下のようになっています。
image.png
受信、発信共に0.018USD/分(1USD 150円換算で2.7円)で利用することができます。

image.png
また通話を受けるため1日当たり電話番号1つにつきDID番号だと0.1USD、通話無料電話番号だと0.48USDかかります。

また、無料枠としてAmazon Connectのコンタクトセンターを最初にデプロイしてから12か月間以下を無料利用できるようです。

・ 1 か月あたり 90 分の Amazon Connect サービス使用量
・ AWS リージョンがある国からの直通ダイヤルイン (DID) 番号
・ 1 か月あたり 30 分のインバウンド DID コール
・ 1 か月あたり 30 分の AWS リージョンがある国の番号へのアウトバウンドコール

Amazon Lexは音声リクエストかテキストリクエストかで料金が変わるのですが、今回は音声のため以下になります。
1リクエストあたり 0.004 USD

作成

Amazon Connectインスタンス立ち上げ

Amazon Connectのサービスコンソールに接続し「インスタンスを追加する」から作成していきます。
FireShot Capture 039 - Instances - Amazon Connect - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png

IDの管理方法とAmazon Connect用のURLを設定します。 フローの登録や細かい設定はこちらのURLから行います。
FireShot Capture 040 - Create Instance - Amazon Connect - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png

管理者の情報を入力します。
ここで入力したユーザ名、パスワードで後からログインするのでメモしておいてください。
FireShot Capture 041 - Create Instance - Amazon Connect - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png

今回は予約システムで電話を受けるだけなので着信のみ許可します。
FireShot Capture 042 - Create Instance - Amazon Connect - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png

この辺はお好みで設定して問題ないと思います。
FireShot Capture 043 - Create Instance - Amazon Connect - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png

設定を確認しインスタンスを作成します。

Amazon Connect管理者コンソール接続

先ほどのURLにアクセスし設定したID、パスワードでログインします。
FireShot Capture 046 - surai-test - AWS Apps Authentication - surai-test.awsapps.com.png

Amazon Connect管理者ワークスペース内は初期設定英語になっていますが、右上から言語を変更することができます。
FireShot Capture 047 - Amazon Connect - Dashboard - surai-test.my.connect.aws.png

ここまで確認出来たら、まず先に自動応答で使うAmazon Lexのbot作成を行います。

Amazon Lex

LexのサービスコンソールにアクセスしてCreate botを選択します。
FireShot Capture 049 - Amazon Lex - ap-northeast-1 - ap-northeast-1.console.aws.amazon.com.png

Botの設定は以下のようにしました。
FireShot Capture 050 - Amazon Lex - ap-northeast-1 - ap-northeast-1.console.aws.amazon.com.png

音声はMizukiに今回は設定しました。
FireShot Capture 051 - Amazon Lex - ap-northeast-1 - ap-northeast-1.console.aws.amazon.com.png

Lexの設定の仕方をすべて書いていたら恐ろしいほど長くなってしまうので作成した最終的なフローを紹介します。
スクリーンショット 2024-12-10 061717.png

今回は以下のようなフローで顧客から情報を取得するものを作成しました。

  1. 予約したい等のワードを検知する
  2. 日付を確認する
  3. 時間を確認する
  4. 人数を確認する
  5. 名前を確認する
  6. 予約内容の確認を行う
  7. 予約完了

今回の目標は正しく名前を認識してもらえる予約システムなので予約機能やエラーハンドリングは適当です。

実際に作成する場合は予約日時に空きがあるかを照会したり、予約内容の登録を行うLambdaを間に挟み込む形となります。

作成したものをビルドし、テストを行います。
スクリーンショット 2024-12-10 030652.png
スクリーンショット 2024-12-10 030711.png

時間の表示が怪しいですが概ねOKです。
後は電話でも名前をしっかり聞き取ってくれることを祈るだけです。

Amazon Connectとの紐づけ

Amazon Connectで実際に利用するために現在のテストバージョンから分離したバージョンを作成します。
image.png
スクリーンショット 2024-12-10 063018.png

さらにそのバージョンを新規で作成したエイリアスに紐づけます。
image.png
image.png
image.png

ここまで来たらAmazon Connectの管理者ワークスペースに戻り、電話フローの設定を行います。

左メニューのルーティング>フローからフローを作成します。
image.png

今回Connect側のフローとしては以下のようにしました。
顧客の入力を取得するの部分で先ほどのLex側のフローが走ります。
image.png

Lexの紐づけはARNにて行っています。ARNは以下のような形式になります。
arn:aws:lex:{リージョン名}:{アカウントID}:bot-alias/{ボットID}/{エイリアスID}

また、Lex接続前に要件を確認する旨のテキストを読み上げるように設定しています。
スクリーンショット 2024-12-10 063851.png

完成したら保存を行い、その後公開を選択してください。
image.png

最後に電話番号とフローの紐づけを行って設定完了です。(日本の番号はサポートケースを作成しないと取得できなかったため今回はUSの電話番号で代用しています)
image.png

電話をかけたときの音声が以下になります。(めちゃめちゃ尺余りしてますが気にしないでください)

ちょっと時間の読み上げがおかしいのと25人で予約されていますが、しっかり大木と認識して予約してくれているので 不問とします

最後に

最後少し適当な感じになってしまいましたが、この後何度か試したところ、結構認識精度も高く名前を正常に読み取ってくれていることが確認できました。

今回は本当に側の側だけ作成しましたが、また機会があれば予約用のLambdaやDynamoDBなどの設定も行って本格的なものを作成しようと思います。

お時間があればアイレット株式会社アドベントカレンダーの他の記事も読んでみてください!

48
4
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
48
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?