はじめに
昨日の記事に続き、データ分析エンジニアの木介が、Amazon Q Business の紹介をしたいと思います。
この記事では、Amazon Q Businnessで、さまざまなデータソースを用いたRAGアプリケーションの作成方法と、guardrailsの機能を利用した回答を適切に制限する方法について紹介をしていきます。
Amazon Q Businessの概要
Amazon Q BusinessとはRAGアプリケーションを各項目を設定するだけで簡単に作成できるサービスであり、その特徴については以下にまとめます。
1. 回答に利用された情報源への引用を明示することが可能
2. Amazon Q Appsで簡単にアプリケーションを作成できる
3. さまざまなデータソースを利用可能
・ S3やTeams、Webサイトなど、30種類以上のさまざまなデータソースを利用可能
4. アクセス制限によるデータ及びアプリケーションへのセキュリティの保証
・ガイドラインに基づいた不要なトピックやキーワードの回答の禁止
・アプリケーションへアクセスできるユーザーの制限が可能
1、2の項目については以下の記事で説明していますので、まだ読まれていない方はぜひそちらをご覧ください。
本記事では特に3、4の項目のさまざまなデータソースを扱える点とguardrailsにより回答を制限できる点について触れていきたいと思います。
さまざまなデータソースで作成してみる
では早速Amazon Q Business でさまざまなデータソースを用いてアプリケーションを作成して行きたいと思います。
まずAmazon Q Businessで現在取り扱えるファイルとしては以下のものとなっています。
ドキュメント形式 | ドキュメントの取り扱い |
HTMLに変換され、プレーンテキストが抽出されます。スキャンされたPDFはサポートされていません。 | |
HTML | HTMLタグがフィルタリングされ、プレーンテキストが抽出されます。コンテンツはメインHTML開始タグと終了タグ(content)の間にある必要があります。 |
XML | XMLタグがフィルタリングされ、プレーンテキストが抽出されます。 |
XSLT | タグがフィルタリングされ、プレーンテキストが抽出されます。 |
Markdown (MD) | コンテンツはMarkdown構文を保持したプレーンテキストとして抽出されます。 |
CSV | 各セルからプレーンテキストが抽出され、単一ファイルが単一ドキュメント結果として扱われます。Amazon QはCSVの分析質問をサポートしておらず、定性的な質問のみをサポートしています。 |
Excel (XLS, XLSX) | 各セルからプレーンテキストが抽出され、単一行が単一ドキュメント結果として扱われます。Amazon QはExcelファイルの分析質問をサポートしておらず、定性的な質問のみをサポートしています。 |
JSON | JSON構文を保持したプレーンテキストとしてコンテンツが抽出されます。 |
RTF | RTF構文がフィルタリングされ、プレーンテキストコンテンツが抽出されます。 |
PowerPoint (PPT, PPTX) | PowerPointスライドからプレーンテキストコンテンツのみが抽出されます。画像やその他のコンテンツは抽出されません。 |
Word (DOCX) | Wordページからプレーンテキストコンテンツのみが抽出されます。画像やその他のコンテンツは抽出されません。 |
Plain text (TXT) | テキストドキュメント内のすべてのテキストが抽出されます。 |
必要そうな形式は大体サポートされていますね!
今回はWebサイト、S3内のPDFをそれぞれデータソースとして試していこうと思います。
1. S3内のデータのQA
まずS3内のデータのQAを試していきたいと思います。
データソースの選択より、Amazon S3を選択することで利用可能です。
以下の設定画面が表示されますので、まずはデータソース名を入力。
このデータソース名についてはインデックス内で一意である必要があります。
IAM roleは新規に作成をします。
次に以下の設定によりデータソースとして扱うS3バケットを、Maximum file sizeの設定により取り扱うファイル容量の最大値を選択することができます。
今回は以下の設定で作成をしました。
こちらの設定にて同期する方法とタイミングを選択することができます。
以下のように設定し、変更があった箇所のみを手動で同期するようにします。
最後に「Add data source」を選択することでデータソースを追加することができます。
ではApplicationでデータソースを元にした回答が可能かを検証していきます。
予めS3バケットに先ほどと同じ労働条件ハンドブックの英語版をアップロードしていますので、先ほどと同じ質問を試してみましょう。
同様の回答が生成出来ていることが確認できました。
S3にアップロードしたファイルに対して要約し、回答できていることが確認できました。
S3内にソースとしたいドキュメントを集約する仕組みを作れば簡単にQAシステムが作成できそうです。
2. Webサイトの要約
次にWebサイトの要約を行いたいと思います。
やり方は先ほどと同じくデータソースの追加からWeb crawlerを選択します。
以下のような設定画面が表示されるので、入力していきます。
スクロールして、以下の画面でデータソースとして取り込むWebページを選択することができます。
今回はSource URLsを選択し、データソースとしてはAmazon Q Businessの以下のドキュメントを入力していきます。
登録したWebページの認証については以下から選択することができます。
ログイン処理といった認証が必要なページの場合にはNTLMやSAML、フォームでの認証の内のそれぞれ合致するものを適用することでクロールが可能です。
今回は公開ページなのでNo Authenticationを選択します。
IAM roleについても別途設定が必要となります。
今回は新しくroleを作成します。
その他の設定に関してはデフォルト値で作成を行います。
同様にしばらく待つと同期が完了します。
では早速Applicationで試してみましょう。
今回はWeb ページの要約を試したいので以下の質問を行います。
引用を明記し、要約出来ていることが分かります。
guardrailsによる回答の制限
では最後に、機密情報などの回答を制限するためのguardrails機能について試していきます。
まず右側のサイドメニューのAdmin controls and guardrailsを選択してguardrailsの設定に移ります。
以下の画面が表示されます
こちらに書いてある通り、特定のキーワードに対して回答を拒否するGlobal controlsと特定のトピックが出た際に指定のメッセージを回答するTopic specific controlsがあります。
まずはGlobal controlsから試していきましょう。
下部にあるGlobal controlsの編集で以下の画面が表示されます。
Response settingsでは質問の回答がデータソース内に存在しないときに、独自の答えを返すかどうかを設定することができます。
Blocked wordsでは回答を拒否するキーワードを指定することができます。
今回はS3上に存在するファイル名を知られないように「file name」をBlocked wordsとして登録してみます。
では次にTopic specific controlsの設定に移ります。
コチラも同様にAdmin controls and guardrails画面の下部にあるTopic specific controlsのCreate topic controlで作成できます。
以下の画面に遷移するのでNameに特定のトピックを指定します。
今回は「email address」をトピックとして指定しました。
Ruleを設定することでトピックが検出された際の挙動と、表示するメッセージなどが設定できます。
今回は以下のように、トピックが検出されると回答を拒否し、メッセージを表示するように設定しました。
では設定ができているか確認していきます。
まずはBlock wordに指定したfile nameについて質問してみましょう。
ブロックされていることが確認できます。
次にトピックに指定したmail addressについて質問をしてみます。
こちらも検出し、メッセージを回答出来ていることが確認できました。
このように簡単に生成AIアシスタントの回答に対して制限を付けることが出来るので、機密情報の漏洩の対策などが簡単に行えそうです。
まとめ
今回はノーコードでRAGを使った生成AIアシスタントシステムを構築可能なAmazon Q Businessを試してみました。
ノーコードでさまざまなデータソースを用いたRAGサービスを作成できる点が魅力的なサービスとなっていました。
今回紹介した機能以外にも対話をしながらアプリケーションを作成するAmazon Q Appsなどのさまざまな機能がありますので、皆さんもぜひ利用してみてください。
Acroquest Technologyでは、キャリア採用を行っています。
- Azure OpenAI/Amazon Bedrock等を使った生成AIソリューションの開発
- ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
- マイクロサービス、DevOps、最新のOSSやクラウドサービスを利用する開発プロジェクト
- 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
www.wantedly.com