LoginSignup
0
0

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

Last updated at Posted at 2023-12-14

ゴール

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
  
以下をコピーされても構いません。

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のページに移動し、「バケットを作成」を選択します。

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でも情報発信してます!

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0