[ワークショップ] 生成AIチャットボット × Connectを体験できるワークショップに参加してきた #AIM355 #AWSreInvent

2023.12.01

大阪オフィスの林です。 re:Invent 2023 も気付けば終盤ですね!

生成AIチャットボットやそれを掛け合わせたクラウドコールセンターがどのように実装されているのかを手を動かして知りたいと思い、そんなワークショップに参加してきました!

セッションタイトル

AIM355-R1 | Amazon Lex と生成 AI を使用して会話エクスペリエンスを構築する

AIM355-R1 | Build conversational experiences with Amazon Lex and generative AI

セッション概要

この実践的なワークショップに参加して、Amazon Lex と Amazon Bedrock を使用して魅力的な会話エクスペリエンスをより迅速に構築する方法を学びましょう。  

生成 AI がボットの設計と実行時のエクスペリエンスをどのように加速するか、また仮想エージェントを Amazon Connect または別のコンタクトセンターソリューションと統合する方法をご覧ください。  

さらに、Amazon Bedrock を迅速に活用して、取得と生成を組み合わせたアプローチを使用して一般的な顧客の質問に答える方法について説明します。

ワークショップ前の雰囲気

会場にいるスタッフ全員が前に来て自己紹介してのはこのセッションが初めてでした!(親近感!

これは入場直後ですが、ここからまだまだ受講者が入場してきました。

ワークショップ前の講義

本ワークショップでは、他のワークショップに比べて、講義らしい講義は無く簡単なAmazon Bedrockにおける様々な種類のモデルについての紹介を踏まえワークショップの内容説明に移っていきました。
(終わってみて感じたのですが、ワークショップ部分がかなり時間的にタイトなので最小限の講義というか説明にしていたのかな?とも感じました)

以下がワークショップで関連するサービスを粗方示したもので、Amazon ConnectとLexチャットボットの連携についての説明があり、そのままワークショップへと進んでいきました。

いざ、ワークショップ

本ワークショップでは「ホテルの宿泊」をユースケース前提として内容で進めていき、ざっくり下記の作業を行っていきます。

  • Amazon LexでBotを構築する
    • Botビルダーでボットを速く構築し、発話生成でトレーニング発話を追加し、アシスト機能によって顧客がBotとより自然に会話できるようにしていく
  • Amazon Connectと統合する
    • AWS Lambdaを使ってバックエンドにあるシステムと連携させ、Amazon ConnectコンタクトセンターにBotを統合する

ではやっていきます!

Amazon LexでBotを構築する

Descriptive Bot - GenAIの作成

Descriptive Bot - GenAIを選択してBotを作成します。

カスタムスロットタイプの設定

ここではホテルの「ルームタイプ」に許可される値を構成します。
定義した値に一致する入力のみを許可するには「スロット値に制限」を選択します。
下の画像の場合、ホテル予約時に『ベッド 2 台』を要求すると『クイーンベッド 2 台』に固定された回答がセットされています。
製品名など、通常の辞書に含まれない値を含むカスタムスロットタイプを構築する場合は[スロット値をカスタム語彙として使用する]オプションをオンにすることによって、Amazon Lex V2 は、ボットとの音声会話を処理し、より多くの情報を得ることができます。

発話の生成

ここでは、 Lex内のGenerative AIの設定を使用して発話の内容を設定します。
サンプルの発話を作成できるので、サンプルで幾つか作成後に、不要そうなものを削除する。というのを繰り返しました。

ビジュアル会話ビルダーの設定

ビジュアル ビルダーを使用して、Descriptive Bot ビルダーによって作成された設定を微調整します。
ビジュアル ビルダーを使用すると、インテントの会話フロー全体を一目ですばやく確認でき、変更が加えられたときに視覚的に情報を得ることができます。変更は即座にビューに反映され、依存関係や分岐ロジックへの影響は設計者にすぐにわかります。

スロット解決支援

[支援によるスロット解決を有効にする]チェックボックスをオンにすることで、会話ターン中に NLUがスロットの解決に失敗すると、Amazon Lex はボット開発者が選択した LLM を呼び出して、スロットの解決を支援します。
スロットの解決に失敗した場合、Amazon Lex は Amazon Bedrock を使用して、顧客の発話から値を推測しようとし、「金曜日、土曜日、日曜日の夜」のような発話は「 3 (泊数) 」に解決され、「私、妻、そして 2 人の子供たち」のような発話「4 (NumberofGuests) 」に解決されます。

Amazon Connectと統合する

Lex ボットを Amazon Connect に追加する

ワークショップ用に作成済みのAmazon ConnectインスタンスにLexボットを紐づけます。

コンタクトフローのインポート

こちらのJSONファイルをダウンロードし「Get customer input」のブロックでLexの名前とエイリアスを指定します。

※私はここまでで時間切れになってしまい悔いが残る状況になってしまいました※

以降は、このあとワークショップがどのように進んでいくかを解説していきたいと思います。

Amazon Connect チャットをテストする

こんな感じでインタラクティブにチャットでやり取りができるようです。

音声でもテストする

電話番号の紐づけや、作成した問い合わせフローを紐づける必要はありますが、同じボットを音声でテストすることもできます。(ここまでやり切りたかった。。。)

おわりに

ワークショップのボリュームがもりもりで完遂出来なかった & 進めることに集中しすぎて設定の本質的な意図を一部曖昧に理解してる部分もあると感じており、その点踏まえ諸々悔いが残ります。。。
また何かの機会にリベンジしたいと思います!