インデックスを作成してクエリを実行してみた(Amazon Kendra)

ゴール

Create and query an indexを参考に、Amazon Kendraでインデックスを作成してクエリを実行することができます。

スタートライン

  • AWSアカウントを持っていること

ステップ1:IAMユーザーにAmazonKendraFullAccessをアタッチする

任意のIAMユーザーを選択し、「許可を追加」を選択します。

image.png

「AmazonKendraFullAccess」と検索し、「次」へを選択します。

image.png

「許可を追加」を選択します。

image.png

これで任意のIAMユーザーにAmazonKendraFullAccessがアタッチされました。

ステップ2:Amazon Kendra インデックスを設定する

Amazon Kendra consoleにアクセスし、「Create an Index」を選択します。

image.png

以下のように、Index nameとIAM role、Role nameを入力します。各項目名はご自身で
決めてください。入力したら「Next」を選択します。

image.png

次の画面では、何も変更せずに「Next」を選択します。

image.png

「Developer editions」を選択し、「Next」を選択します。

image.png

「Create」を選択します。
image.png

Statusが「Active」になったら、作成完了です。
image.png

ステップ3:IAMロールを更新する

IAM consoleで先ほど作成したRoleを選択し、「ポリシーをアタッチ」を選択します。

image.png

今回はS3を使うため、「AmazonS3ReadOnlyAccess」と検索し、ヒットしたポリシーにチェックを入れた状態で、「許可を追加」を選択します。

image.png

許可ポリシーに追加されました。

image.png

ステップ4:データソースへのS3コネクタを構成する

まずは、データソースを作成します。作成したインデックスの画面に移動し、「Data management」の「Data sources」タブを選択すると以下のような画面が表示されるので、「Add data sources」を選択します。

image.png

Sample AWS documentationの「Add dataset」を選択します。

image.png

Data sourse nameを入力し、Default Languageは「Japanese(ja)」を選択し、「Add data sourse」します。

image.png

データソースができるまで少し時間がかかるので、その間にクエリ検索に使うデータをS3にアップロードしましょう。

まずは、使用データを準備します。
検索インテントを使用してAmazon KendraとAmazon Lex を統合するに記載されているサンプルデータである、help-desk-faq.csvをダウンロードします。

このサンプルデータは英語なので、ChatGPTを使って日本語化します。

image.png

以下をコピーされても構いません。

これでデータの準備は完了です。

次に、S3のページに移動し、「バケットを作成」を選択します。

image.png

AWSリージョンは「米国東部(バージニア北部)us-east-1、バケットタイプは「汎用」を選択し、バケット名を入力してバケットを作成します。

image.png

作成したバケットに移動し、「アップロード」を選択します。

image.png

先ほど作成したhelp-desk-faq.csvをアップロードします。

image.png

ステップ4:FAQを追加する

Amazon Kendraの「Data management」の「FAQ」タブから「Add FAQ」を選択します。

image.png

FAQ nameを入力し、Default languageは「Japanese(ja)」を選択します。
FAQ file formatは「.csv file -Basic」を選択し、S3で先ほどアップロードしたhelp-desk-faq.csvのパスを指定し、「Add」を選択します。

image.png

Statusが「Active」になったら追加完了です。

image.png

ステップ5:インデックスをクエリする

「Data management」の「Search indexed content」タブに移動します。

image.png

右側のSettingsのDefault language of sourse documentsから「Japanese(ja)」を選択します。
その後、「ヘルプデスクはどこにありますか?」というクエリを投げると、以下のように結果が返ってきます。
ファイルの内容を元にして回答できています。

image.png

フィニッシュ

お疲れ様でした。
値段が高いので、継続的に使用しない場合は今回作成したリソースは削除しましょう。
以下のXでも情報発信してます!

参考文献

この記事を書いた人

aws-recipe-user