Amazon Web Services ブログ

問い合わせ追跡レコードとAmazon Lexのログを使って、Amazon ConnectのチャットボットのパフォーマンスをAmazon AthenaとAmazon QuickSightで分析する

注:これは、Amazon Connect レポートブログシリーズの 4 番目のブログです。もし「 Amazon Athena と Amazon QuickSight でAmazon Connect の問い合わせ追跡レコードを分析する Part1」 を読んでいない場合は、先に進む前に読まれることを強くお勧めします。

イントロダクション

多くの組織は、デジタルカスタマーエクスペリエンスの提供のためにチャットボットのパフォーマンスレポートを生成する機能を望んでいます。Amazon Lex は、Amazon Connect で使用されるチャットボットの自然言語理解 (NLP) エンジンです。Amazon Lex ログを問い合わせ追跡レコード (CTR) および会話ログに関連付けることで、これらの組織はチャットボットの問題を特定し、NLP エンジンを調整し、顧客の感情を理解し、チャットボットのパフォーマンスを向上させることができます。CTR は、保留時間、待機時間、エージェントの対応時間などのトランザクションメトリクスをキャプチャしますが、Amazon Lex の会話ログには、発信者の発話、NLP 信頼スコア、センチメントスコア、インテント名などがキャプチャされます。
このブログでは、Amazon QuickSight を使用して Amazon Lex 会話ログを有効にし、CTR ログに関連付けて、レポートを生成する方法を学習します。

概要

図 1 ー ハイレベルなアーキテクチャ図

上記のアーキテクチャでは、Amazon Kinesis は Amazon Connect の CTR を生データとして Amazon Simple Storage Service (S3) バケットにストリームします。CTR は、コンタクトセンターからの問い合わせコールに関連するイベントをキャプチャします。Amazon Connect は問い合わせレコードを少なくとも 1 回配信します。最初の配信後に新しい情報が届くなど、同じ通話に対してより多くの CTR が配信される可能性があります。

Amazon Lex は、会話のテキストと音声のログを配信します。このブログでは、テキストログとそれに関連するメタデータに焦点を当てます。Amazon Lex は、発信者の発話ごとに会話ログを S3 に配信します。会話ログはセッション ID によって識別され、個別の発信者とチャットボットセッションのトラブルシューティングに使用されます。

AWS Glue カタログには、CTR と Amazon Lex の出力ファイルのテーブル定義があります。CTR と Amazon Lex ログをコンタクト ID で関連付け、Amazon Athena を使用してクエリを実行できます。視覚化には、Amazon QuickSight が使用されます。

このソリューションは、ソリューションドメインを定義する「ProjectName」という名前のパラメーターを使用します。分離を維持するために、このソリューションを異なるプロジェクト名で複数回デプロイできます。プロジェクト名は S3 バケットなどの基本的なコンポーネントの名前として使用されるため、グローバルに一意である必要があります。

前提

このブログ投稿で紹介したソリューションに従うには、以下の AWS のサービスと機能に慣れている必要があります。

ウォークスルー

分析レベルに基づいて、展開するオプションは 2 つあります。

  • オプション 1 – 詳細な分析: このソリューションでは、キューやエージェントなどの CTR エンティティを使用して Amazon Lex の会話ログをクエリできます。
  • オプション 2 – 基本的な分析: このソリューションでは、Amazon Lex の会話ログのみを分析できます。

オプション 1 のデプロイメント手順

ブログ「Amazon Athena と Amazon QuickSight で Amazon Connect 問い合わせ追跡レコードを分析する Part1」に従って、Athena までのソリューションをデプロイして検証します。QuickSight でのデータの視覚化については、このブログの手順に従ってください。

最初のブログで CloudFormation テンプレートをデプロイする際に使用した「ProjectName」に注意してください。同じデプロイの上に引き続きビルドするには、このステップで同じ名前を使用する必要があるためです。「acathenaquicksight」のようなプロジェクト名を使用できますが、名前は一意である必要があります。そうでない場合、CloudFormation は S3 バケットの作成中にエラーを返します。エラーが発生した場合は、別のプロジェクト名で再デプロイできます。

  1. AWS マネジメントコンソールにログインします。
  2. CloudFormation テンプレートをここからローカルにダウンロードします。
  3. 希望するリージョンで、ステップ 2 でダウンロードしたテンプレートファイルを使用して CloudFormation スタックを作成します。
  4. デプロイには次のパラメータが必要です。
    1. 「CreateANewGlueDatabaseAndS3BucketForTheProject」で、「Use existing…」オプションを選択します。
    2. Amazon Athena と Amazon QuickSight で Amazon Connect 問い合わせ追跡レコードを分析する Part1」ブログをデプロイする際に指定したものと同じプロジェクト名を使用します。
    1. 残りのオプションページはデフォルトのままにして、スタックの作成 を選択します。
    2. Amazon Connect コンタクト ID を Amazon Lex 会話ログに関連付けるには、問い合わせフローにある、顧客の入力を取得するノード(ブロック)のセッション属性として「ContactID」(宛先キー)を追加します。
    3. 顧客の入力を取得するノードに Amazon Lex Bot エイリアスを入力します。

オプション 2 のデプロイメント手順

  1. AWS マネジメントコンソールにログインします。
  2. CloudFormation テンプレートをここからローカルにダウンロードします。
  3. 希望するリージョンで、ステップ 2 でダウンロードしたテンプレートファイルを使用して CloudFormation スタックを作成します。
  4. デプロイには次のパラメータが必要です。
    1. 「CreateANewGlueDatabaseAndS3BucketForTheProject」で、「Create a new…」オプションを選択します。
    2. AWS 内でリソースを作成するために使用するプロジェクト名を指定します。
  5. 残りのオプションページはデフォルトのままにして、スタックの作成 を選択します。

オプション 1 および 2 の共通手順

Amazon Lex V1 の場合

  1. ボットの設定タブに移動し、Conversation logs をクリックします。次に、ボットエイリアスの設定アイコン (歯車) をクリックします。
  2. テキストログを有効にし、ドロップダウンから ロググループ名IAM ロール を選択します (両方の名前には、CloudFormation テンプレート (CFT) パラメーターで指定されたプロジェクト名とボットの名前が含まれている必要があります)。
  3. ボットをビルドし、公開します。(訳注:Build をクリックし、その後 Publish をクリックします。)

Amazon Lex V2 の場合

  1. ボットのエイリアスに移動し、エイリアス名をクリックします。
  2. 会話ログセクションまでスクロールダウンし、会話ログを管理 をクリックします。
  3. テキストログを有効にし、ロググループ名を選択します(CFTパラメータで提供されるプロジェクト名とボット名が含まれます)
  4. スクロールダウンし、保存をクリックします。

検証

チャットセッションを開始し、Amazon Lex チャットボットと対話してデータを生成します。数分以内に、Amazon Lex ログデータが「.parquet」ファイルとして「lex-base」フォルダの下のプロジェクト名として指定されたストレージバケットに表示されます。

  1. Amazon Athena にログインします。テーブルの下に「connect_lex_<bot name>」と表示されます。
  2. Athena でデータをクエリするには、’connect_chat’ テーブルの横にある 3 つのドットをクリックし、テーブルをプレビュー をクリックします。
  3. クエリを実行すると、Athena がクエリの結果を表示します。
  4. オプション 1 を使用してデプロイする場合は、CloudFormation の出力タブにあるクエリを実行して Amazon Athena ビューを作成します。

Amazon QuickSight で可視化する

Athena を使用してデータをクエリすると、Amazon QuickSight で結果を直接視覚化できます。Amazon QuickSight を Athena に接続する前に、Amazon QuickSight に Athena とそれに関連付けられた S3 バケットへのアクセスを許可する必要があります。詳細については、「AWS リソースへのアクセス」を参照してください。アクセス権限を付与したら、作成された Athena テーブルに基づいて Amazon QuickSight で新しいデータセットを作成できます。

  1. Amazon QuickSight に移動し、新しい分析 を選択します。
  2. 新しいデータセット をクリックし、Athena をクリックしてデータソースに名前を付けます。

以下の例では、選択された名前は「connect-lex-ctr-visualization」です。その後、データソースの作成 をクリックします。

    1. 次のデプロイオプションに基づいて、データベースの名前とソースビュー/テーブルを選択し、選択 をクリックします。
      • オプション 1 を使用してデプロイする場合は、ビュー名「<ProjectName>_ <BotName>_lex_with_ctr_AverageSentimentAndctrDataPerContact」を選択します。
      • オプション 2 を使用してデプロイする場合は、テーブル名「connect_lex_<botname>」を選択します。
      • 注:Amazon Athena 内でビューを作成して、強化された視覚化を構築します。詳細については、このブログ投稿を参照してください。
    2. 最後に、Visualize をクリックしてデータセットの作成を完了します。
    3. 次の画面では、以下のようなチャットデータが表示されます。

Amazon QuickSight を使用して、他のチャットレコードの視覚化を追加できます。Amazon Athena 内でビューを作成して、強化された視覚化を構築します。詳細については、このブログ投稿を確認してください。さらに、Connect インスタンスを継続的に監視し、そのダッシュボードを共有できます。

後片付け

スタックによって作成されたリソースを削除するには、次の手順を実行します。

  1. このブログでの実装で作成された CloudFormation スタックを削除します。
  2. CloudFormation テンプレートから作成されたオブジェクトと S3 バケットを削除します。バケット名にはプロジェクト名が含まれています。
  3. CloudFormation テンプレートから作成された Glue データベースを削除します。
  4. オプション 1 で作成した Athena ビューを削除します。

まとめ

このブログでは、Amazon Lex ログを有効にし、Amazon Kinesis Data Firehose を使用して Amazon S3 にストリーミングする方法を学びました。このブログでは、CTR と Amazon Lex ログを関連付け、Amazon QuickSight でレポートを生成する方法も示しています。Amazon Athena 内でビューを作成して、強化された視覚化を構築するには、このブログ投稿で詳細を確認してください。