ゴール
Create and query an indexを参考に、Amazon Kendraでインデックスを作成してクエリを実行することができます。
スタートライン
- AWSアカウントを持っていること
ステップ1:IAMユーザーにAmazonKendraFullAccessをアタッチする
任意のIAMユーザーを選択し、「許可を追加」を選択します。
「AmazonKendraFullAccess」と検索し、「次」へを選択します。
「許可を追加」を選択します。
これで任意のIAMユーザーにAmazonKendraFullAccessがアタッチされました。
ステップ2:Amazon Kendra インデックスを設定する
Amazon Kendra consoleにアクセスし、「Create an Index」を選択します。
以下のように、Index nameとIAM role、Role nameを入力します。各項目名はご自身で
決めてください。入力したら「Next」を選択します。
次の画面では、何も変更せずに「Next」を選択します。
「Developer editions」を選択し、「Next」を選択します。
ステップ3:IAMロールを更新する
IAM consoleで先ほど作成したRoleを選択し、「ポリシーをアタッチ」を選択します。
今回はS3を使うため、「AmazonS3ReadOnlyAccess」と検索し、ヒットしたポリシーにチェックを入れた状態で、「許可を追加」を選択します。
許可ポリシーに追加されました。
ステップ4:データソースへのS3コネクタを構成する
まずは、データソースを作成します。作成したインデックスの画面に移動し、「Data management」の「Data sources」タブを選択すると以下のような画面が表示されるので、「Add data sources」を選択します。
Sample AWS documentationの「Add dataset」を選択します。
Data sourse nameを入力し、Default Languageは「Japanese(ja)」を選択し、「Add data sourse」します。
データソースができるまで少し時間がかかるので、その間にクエリ検索に使うデータをS3にアップロードしましょう。
まずは、使用データを準備します。
検索インテントを使用してAmazon KendraとAmazon Lex を統合するに記載されているサンプルデータである、help-desk-faq.csvをダウンロードします。
このサンプルデータは英語なので、ChatGPTを使って日本語化します。
以下をコピーされても構いません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Question,Answer,URL ヘルプデスクはどこにありますか?,2階、201号室(エレベーターを降りた後、右に2回曲がってください)。,<document url> ヘルプデスクの開館時間はいつですか?,営業時間は午前11時から午後2時までです。,<document url> ラップトップの修理にはどのくらい時間がかかりますか?,ラップトップの修理には通常2時間かかります。,<document url> スクリーンの修理にはどのくらい時間がかかりますか?,ラップトップのスクリーン修理には通常4時間かかります。,<document url> バッテリーの修理にはどのくらい時間がかかりますか?,ラップトップのバッテリー修理は通常約1時間かかります。,<document url> オーディオ問題の修理にはどのくらい時間がかかりますか?,ラップトップのオーディオ修理は通常15-30分かかります。,<document url> 近くにカフェはありますか?,3階にあり、毎日午前8時から午後4時まで営業しています。,<document url> ラップトップ修理に何を持って行く必要がありますか?,"ラップトップ修理の際は、社員証、ラップトップ、VPNフォブをお持ちください。",<document url> スクリーン修理に何を持って行く必要がありますか?,"ラップトップスクリーン修理の際は、社員証、ラップトップ、VPNフォブをお持ちください。",<document url> バッテリー修理に何を持って行く必要がありますか?,"ラップトップバッテリー修理の際は、社員証、ラップトップ、充電ケーブルとアダプター、VPNフォブをお持ちください。",<document url> オーディオ修理に何を持って行く必要がありますか?,"ラップトップオーディオ修理の際は、社員証、ラップトップ、ヘッドフォン/イヤーポッド、VPNフォブをお持ちください。",<document url> 新しいラップトップに何を持って行く必要がありますか?,"新しいラップトップを受け取る際は、社員証とVPNフォブをお持ちください。",<document url> ラップトップが修理中の間、ドキュメントにどのようにアクセスしますか?,Amazon Workdocsを使用してドキュメントにアクセスできます。,<document url> |
これでデータの準備は完了です。
次に、S3のページに移動し、「バケットを作成」を選択します。
AWSリージョンは「米国東部(バージニア北部)us-east-1、バケットタイプは「汎用」を選択し、バケット名を入力してバケットを作成します。
作成したバケットに移動し、「アップロード」を選択します。
先ほど作成したhelp-desk-faq.csvをアップロードします。
ステップ4:FAQを追加する
Amazon Kendraの「Data management」の「FAQ」タブから「Add FAQ」を選択します。
FAQ nameを入力し、Default languageは「Japanese(ja)」を選択します。
FAQ file formatは「.csv file -Basic」を選択し、S3で先ほどアップロードしたhelp-desk-faq.csvのパスを指定し、「Add」を選択します。
Statusが「Active」になったら追加完了です。
ステップ5:インデックスをクエリする
「Data management」の「Search indexed content」タブに移動します。
右側のSettingsのDefault language of sourse documentsから「Japanese(ja)」を選択します。
その後、「ヘルプデスクはどこにありますか?」というクエリを投げると、以下のように結果が返ってきます。
ファイルの内容を元にして回答できています。
フィニッシュ
お疲れ様でした。
値段が高いので、継続的に使用しない場合は今回作成したリソースは削除しましょう。
以下のXでも情報発信してます!