こんにちは。AWS CLIが好きな福島です。
はじめに
今回は、Amazon Q(プレビュー)を利用し、手軽にRAGアプリを作成してみます。
Amazon QでRAGアプリが作成できるの?と疑問に思われる方もいるかと存じますが、 Amazon Qには、Business 向けとAWS Builder 向けの2種類があります。
その内、Business 向けのAmazon Qでは、手軽にRAGアプリを作成することが出来ます。
AWSのマネジメントコンソールなどに表示されるAmazon Qは、AWS Builder向けになります。
補足ですが、AWSのドキュメントもそれぞれ用意されております。
https://docs.aws.amazon.com/ja_jp/amazonq
留意事項
現在、Amazon Qはプレビュー中のため、本記事の内容から変わる可能性がありますので、ご留意ください。
やること
Amazon Qを利用し、RAGアプリを作成する流れを以下に記載いたします。
①アプリケーションの作成 ②retrieverの設定 ③データソースの設定 ④動作確認
①アプリケーションの作成
- Amazon Qの画面を開き、「Get started」を押下します。
- 「Create application」を押下します。
- Application NameとService role nameを指定し、「Create」を押下します。
このページで暗号化する際に利用するキーをカスタムすることもできますが、今回はデフォルトキーで暗号化します。
- 「Propagating IAM role.」と表示されるため、しばらく待ちます。
Select retrieverの画面に遷移したら次の項目に移ります。
②retrieverの設定
ここでは、RAGで利用するドキュメントを検索する機能としてAmazon Qのネイティブな機能を利用するか、既存のAmazon Kendraを利用するか、選択することが出来ます。
また、Index provisioning にて、RAGで利用するドキュメント数を設定することが出来ます。
1unitあたり2万ドキュメント保存できるようです。 2万ドキュメント単位で 1 時間あたり 0.14 ドル (月額 100 ドル) の料金がかかりますが、最初のストレージ ユニットは、750 時間または 31 日のいずれか短い方の期間、無料で利用できます。
https://aws.amazon.com/jp/q/pricing/
③データソースの設定
ここでは読み込みたいドキュメントが格納されたデータソースを選択することが出来ます。 今回は、File Uploaderを試してみます。
- File Uploaderを選択します。
- 「Choose files」を押下し、アップロードしたいファイルを選択します。
最大ファイルサイズは50MBで、サポートされているファイルの種類は、csv、.docx、.html、.json、.md、.pdf、.ppt、.rtf、.txt、.xml、.xslt、および .xslx です。
また、現時点では利用するドキュメントは英語のみがサポートされている点ご注意ください。
インデックス作成では英語のドキュメントのみがサポートされます。
https://docs.aws.amazon.com/amazonq/latest/business-use-dg/supported-languages.html
アップロードが完了すると、「Successfully Uploaded documents.」を表示されます。 ちなみに今回は、弊社のコーポレートサイトに記載の情報をPDF化したものをアップロードしています。
これでRAGアプリの構築は完了です!かなり手軽に構築できましたね!
④動作確認
実際に作成したRAGアプリを使ってみます。
- 「Preview web experience」を押下します。
- Amazon Qに質問してみます。
今回は、サーバーワークスの社長の名前を聞いたところ正しく大石 良と回答が返ってきました。 また参考にしたドキュメントも合わせて表示してくれました。
今回は正しい回答が返ってきましたが、現時点では英語を利用した方が最適なパフォーマンスを発揮する点、ご注意ください。
Amazon Q は複数の言語で応答できます。 ただし、Amazon Q は英語での会話や対話には最適なパフォーマンスを発揮します。
https://docs.aws.amazon.com/amazonq/latest/business-use-dg/supported-languages.html
終わりに
今回は、Amazon Qを利用して手軽にRAGアプリを作成してみました。
また、Amazon QはSAML連携やユーザーごとにドキュメントへのアクセス権限を制御することも可能なため、GAされるのが楽しみです。
ただ、現時点では、日本語にサポートしていないため、GAされる際には日本語もサポートされるといいですね。