Amazon Kendra の Workshop をやってみた

触ったことがない初心者が、Amazon KendraのWorkshopを取り組むことでサービスの理解に繋がりました。
2023.05.01

はじめに

先日のAWS Summit Tokyo 2023に参加した際、下記セッションのAWSのAIサービスについて、学ぶ機会がありました。

その際に、Amazon Kendraの解説があり、興味が出たため、セッションで紹介されたWorkshopを受けてみました。

おすすめの方

  • AIサービスには興味があるが、Amazon Kendraを触ったことがない方

Amazon Kendraを触ったことがない方でもWorkshopを通じて、インデックス作成やデータソースの同期などの操作を手を動かしながら学ぶことができます。

目次

  1. ドキュメントの取り込み
    • 1 Amazon Kendra S3コネクタの使用
      • Amazon Kendra S3コネクターによるドキュメントの取り込み
      • Amazon Kendra S3 コネクタ用のメタデータドキュメント
      • メタデータを含むドキュメントを S3 にアップロード
      • Kendra インデックスへのフィールドの追加
      • S3 コネクタの更新
    • 2 ServiceNow Online Connectorの使用
      • ServiceNow Online のユーザーを作成する
      • ServiceNow Onlineコネクタの作成
    • 3 SharePoint Onlineコネクタの使用
      • コネクター用のSharePoint Onlineユーザーの作成
      • SharePoint Online のコネクタを作成する
    • 4 Amazon Kendra Web Crawler Connectorを使用する
      • Amazon Kendra Web Crawler connectorによるドキュメントの取り込み
      • 取り込んだドキュメントを検索する
    • 5 FAQsを追加
  2. Kendra クエリ結果の分析
    • 1 権限の設定
    • 2 クエリを準備する
    • 3 クエリを送信する
    • 4 結果の分析
  3. Amazon Kendraでのクエリのフィルタリング
    • 1 ファセットの有効化
    • 2 クエリでのファセットの使用
    • 3 インデックスフィールドをソート可能にする
    • 4 関連性チューニング(Relevance tuning)
  4. Amazon Kendraによる安全な検索
    • 1 S3 フォルダに ACLs を追加する
    • 2 Kendra インデックスと連携する安全なウェブアプリケーションをデプロイする
    • 3 安全な検索ウェブアプリケーションで検索クエリを試してみる
  5. Custom Document Enrichment
    • 1 事前準備をデプロイする
    • 2 データソースの準備と CDE の設定
    • 3 クエリを作成して、ユースケースを試してください
  6. Amazon Lexチャットボットで質問に答える
    • 1 Amazon Lexボットの作成
    • 2 必要なインテントの作成
    • 3 Kendraインテントとレスポンスメッセージの作成
    • 4 Lexボットのテスト
  7. 後片付け
  8. ソリューション
    • 1 オーディオ&ビデオファイルを検索可能にする
      • MediaSearch Indexerのインストール
      • MediaSearch Finderのインストール
      • 既存のMediaSearch Finderを更新する
      • Finderアプリでメディアファイルを検索する
    • 2 コンテンツメタデータのタグ付けによる検索機能の強化
    • 3 Amazon Kendraのカスタムドキュメントエンリッチメント(CDE)機能を使ったJSONコンテンツのパース

注意点

  • Workshopを進めるにあたり、作業するリージョンは、東京リージョンではなく、バージニアリージョンにしましょう
  • 料金に関して、Amazon Kendra の Developer Editionでは、最初の 30 日間で最大 750 時間の無料利用枠が提供されますが、それ以降は、1時間あたり1.125 USD/時間かかりますので、Workshopが終了後は即後片付けしましょう。

各章の感想やコメント

  • 1-1 Kendra のS3 コネクタを使用してドキュメントを取り込み、コネクタがドキュメントファイルとメタデータファイルと連携するように設定し、Kendra インデックスにフィールドを追加して検索機能を充実させました。
    • 作業は比較的カンタンに検索機能が使えることが分かりました
  • 1-2 ServiceNowオンライン・インスタンスがない場合、この章は、スキップしても構いません(以降の章に影響しません)
  • 1-3 SharePoint Onlineを利用していない場合、この章は、スキップしても構いません(以降の章に影響しません)
  • 1-4 Web Crawlerで、ウェブページをクロールしてインデックスに登録することができるのは、便利だと感じました。
  • 4 検索アプリケーションが提供するユーザーアクセストークンと Amazon Kendra コネクタによって収集されたドキュメントアクセス制御リスト (ACL) に基づく検索フィルタリングをしました。ユーザーアクセストークンを適用すると、検索結果はそのユーザーがアクセスできるドキュメントからのみ表示されます
    • アクセス制御を行い、ログインユーザーによって検索結果の内容が変わることが分かりました。
  • 5 Amazon Kendra のカスタムドキュメントエンリッチメント (CDE) 機能を使い、ドキュメントのメタデータとコンテンツを充実させました。Amazon Textractや AWS Lambdaを利用し、画像付きドキュメントのテキストを自動的に抽出し、検索可能にできるというのは、便利ですし、ソリューションの説明も詳しく解説されており理解できました。
  • 6 Amazon Kendraインデックスを使用して、ユーザーの質問に回答を提供するAmazon Lex のボットを作成します。 ボットを正常に構築するには、少なくとも1つのインテントを作成する必要があるため、ダミーとしてインテントを作成しました。ただしインテントの発話は、顧客が質問するどの質問にも当てはまらないようにする必要があるということで、こういった使い方はしたことがなかったため、Amazon Lexのボットの使い方も勉強になりました。

最後に

今回は、Amazon KendraのWorkshopを体験しました。

手を動かしながら進めていたため、Amazon Kendraを理解しやすく、解説も自然な日本語のため、詰まることもありませんでしたので、おすすめのWorkshopです!

他にもAmazon Kendraの下記のハンズオンがあるため、ぜひ試してみてください!