[登壇資料]DAIMYO Meetup #4で「AWSサービスで福岡県のことを教えてくれるAIチャットボットを作ってみた」というタイトルで登壇しました

大名にあるヌーラボさんオフィスで「AWSサービスで福岡県のことを教えてくれるAIチャットボットを作ってみた」について語りました
2024.02.29

こんにちは、洲崎です。
DAIMYO Meetup #4にて、「AWSサービスで福岡県のことを教えてくれるAIチャットボットを作ってみた」というタイトルで登壇したので、資料を公開します。

資料

登壇内容

福岡県のことを聞けるAIチャットボットをAWSサービスのみで作ってみました。

構成図

構成図はこちらです。

CloudFront + S3で静的Webページ(チャットページ)を作成し、Amazon Connect ChatとAmazon Lexでチャットボットを構築します。
回答内容の生成については生成AIサービスのAmazon Bedrockと、回答する内容を検索するためのエンジンにAmazon Kendraを利用しています。

各AWSサービスの概要

Amazon Connect

クラウド型のコンタクトセンターサービスです。電話・ウェブ通話のほかにチャット機能も利用できます。
チャット機能を利用する際、オペレーターは電話と同じ画面から音声・チャット両方の対応が可能です。

Amazon Connect Chatの設定を行うと、スクリプト(JavaScript)が自動生成されます。
このコードをhtmlに組み込むことで簡単にチャット機能を実装できます。

Amazon Lex

会話型チャットボットを構築するサービスです。
Slotに受け答えした情報を認識・入力し、Lambdaに渡すことができます。

Amazon Kendra

機械学習を原動力としたエンタープライズ検索サービスです。
参照するデータの検索エンジンとして、Amazon Kendraを利用しました。
データソースとしては、福岡県庁のトップページ「https://www.pref.fukuoka.lg.jp」を設定しています。

Amazon Bedrock

APIを通じて様々な企業の生成AIモデルを利用できるプラットフォームを提供するサービスです。
今回はAnthropicのClaude V2を利用しました。

(補足)LLM・RAGについて

今回のBedrockとKendraの位置付けとして、LLMとRAGについて簡単にですが補足しました。
LLMのみだと、学習されていないデータについては誤った回答(固有名詞など)をする恐れがあります。
RAG(今回はKendra)を利用することで、参考ドキュメント(今回は福岡県庁のトップページ)を検索し、その結果をLLMに渡すことで正しい回答を出すことができます。

RAGについては下記ブログで丁寧に詳しく説明されてますので、ご参照ください。

実装ポイント

LTでは時間に限りもありますので、実装にあたってのポイントを紹介しました。(実装方法自体は別途ブログを書く予定です)
電話での実装については下記ブログをご参照ください。

Amazon Connectの実装

「顧客の入力を取得する」ブロックで、初めに流す自動アナウンスの文章とLexを指定します。

Amazon Lexの実装

サンプル発話で「はい」と入力されたら、それをトリガーにfreeinputのスロットを起動し、顧客からの質問内容を保存し、Lambda関数を呼び出します。

Amazon Kendraの実装

Typeを「Webcrawlerv2」で、Default Languageを「Japanese」、Soure URLsは福岡県庁のトップページを設定しました。

Amazon Bedrockの実装

Lambdaの全コードは割愛しますが、プロンプトの部分を紹介しました。
「あなたは福岡県庁に務めるお客さま相談室の窓口係です」といった文言や、「回答できない場合、分からないと伝えましょう」といったプロンプトを記載しています。

デモ

以下のシナリオでデモを実施しました。

回答内容が正しく出てくるかドキドキでしたが、正確な内容(福岡県知事は服部 誠太郎さんです)が返ってきてよかったです。
また、会場からの追加質問で「福岡県の人口は?」と聞いたところ、「分かりませんでした」といった、誤った回答をしなかったのもよかったです。

改善できるところ

今後やってみることをあげてみました。
「過去の質問履歴を参照しつつ...」のところは、DynamoDBと組み合わせたりしたらできそうな気がします。
この辺りも適宜試して、ブログなどで共有したいと考えています。

感想

DAIMYO Meetupは初めての参加でした。
技術的なことであれば何でもOK!のLTだったのと、登壇中は随時拍手をいただいたりして、とても話しやすかったです。
その後の懇親会でもいろいろな方とお話しできて、とても楽しく有意義に過ごすことができました。
また、定期的にコミュニティイベントに参加していきます。

ヌーラボさん、マネーフォワードさん、このような場を提供いただきありがとうございました。

ではまた!コンサルティング部の洲崎でした。

最後に

LTでも宣伝させていただきましたが、クラスメソッドでは、20周年をかねて「クラスメソッド オデッセイ」というイベントを2024年7月に行う予定です!
事前登録するときっといいことがあるはずなので、ぜひ興味ある方は登録のほどよろしくお願いします。