「新しいAmazon Kendra Alfrescoコネクタを使用して、Alfrescoコンテンツをインデックス化します」

Using the new Amazon Kendra Alfresco connector to index Alfresco content.

Amazon Kendraは、機械学習(ML)によって強力で正確な検索機能を提供する、高度な精度と使いやすさを兼ね備えたインテリジェントな検索サービスです。Amazon Kendraは、データソースコネクタのスイートを提供し、コンテンツがどこにあっても、その取り込みとインデックス作成のプロセスを簡素化します。

組織内の貴重なデータは、構造化および非構造化のリポジトリに保存されています。エンタープライズ検索ソリューションは、複数の構造化および非構造化リポジトリをインデックス化し、検索できるようにする必要があります。

Alfresco Content Servicesは、オープンで柔軟性があり、高度なスケーラビリティを備えたエンタープライズコンテンツ管理(ECM)の機能を提供します。さらに、コンテンツサービスプラットフォームの利点を備えており、日常的に使用する業務アプリケーションとの簡単な統合により、どこでもどのようにでもコンテンツにアクセスできます。多くの組織がAlfrescoコンテンツ管理プラットフォームを使用してコンテンツを保存しています。Alfrescoを使用するエンタープライズの顧客にとって、重要な要件の1つは、保存されているすべてのドキュメントを簡単かつ安全に検索し、正確な情報を見つけることができる能力です。

お知らせです!新しいAmazon Kendra Alfrescoコネクタを使用して、Alfrescoリポジトリとサイトに保存されているドキュメントを検索できるようになりました。この記事では、新しいコネクタを使用して、インデックス化の目的でAlfrescoに保存されているドキュメントを取得し、Amazon Kendraのインテリジェントな検索機能を安全に使用する方法を紹介します。さらに、MLによるインテリジェントな検索では、キーワード検索があまり効果的でない自然言語のナラティブコンテンツを持つ非構造化ドキュメントから正確な情報を見つけることができます。

Amazon Kendra Alfrescoコネクタの新機能

Amazon Kendra Alfrescoコネクタは、以下の機能をサポートしています:

  • Alfrescoオンプレミス(On-Prem)プラットフォーム用の基本認証とOAuth2認証のメカニズム
  • Alfresco PaaSプラットフォーム用の基本認証とOAuth2認証のメカニズム
  • Alfrescoリポジトリドキュメントのアスペクトベースのクローリング

ソリューションの概要

Amazon Kendraを使用すると、複数のデータソースを設定して、ドキュメントリポジトリとサイト全体での検索を一元化することができます。この記事のソリューションでは、以下の内容をデモンストレーションします:

  • Alfrescoのプライベートサイトとパブリックサイトからドキュメントとコメントを取得する
  • Amazon Kendra固有のアスペクトを使用して、Alfrescoリポジトリからドキュメントとコメントを取得する
  • Alfresco On-PremおよびPaaSプラットフォームでの基本認証とOAuth2メカニズムによる認証
  • サイトとリポジトリ全体でのアクセス制御を備えたAmazon Kendraの検索機能

1つのプラットフォームのみを使用する場合は、使用していないプラットフォームに対応する手順を無視して、この記事に従ってサンプルソリューションを構築することができます。

以下は、サンプルソリューションを構築するための手順の概要です:

  1. 3つのAlfrescoサイトとリポジトリフォルダにドキュメントをアップロードします。アップロードされたドキュメントがサイトとリポジトリフォルダ全体で一意であることを確認してください。
  2. 2つのプライベートサイトとリポジトリに対して、ドキュメントレベルのAlfresco権限管理を使用してアクセス許可を設定します。パブリックサイトでは、ドキュメントレベルでのアクセス許可の設定は必要ありません。アクセス権限情報はAmazon Kendra Alfrescoコネクタによって取得され、Amazon Kendra検索機能によるアクセス制御に使用されます。
  3. 2つのプライベートサイトとリポジトリに対して、新しいAmazon Kendraインデックスを作成します(プライベートサイトとリポジトリの両方で同じインデックスを使用します)。パブリックサイトでは、新しいAmazon Kendraインデックスを作成します。
  4. オンプレミスのプライベートサイトに対して、Basic認証を使用してAmazon Kendra Alfrescoデータソースを作成します(プライベートサイト用のAmazon Kendraインデックス内で使用します)。
  5. Amazon Kendra固有のアスペクトを持つオンプレミスリポジトリドキュメントに対して、Basic認証を使用してデータソースを作成します(プライベートサイト用のAmazon Kendraインデックス内で使用します)。
  6. PaaSのプライベートサイトに対して、Basic認証を使用してデータソースを作成します(プライベートサイト用のAmazon Kendraインデックス内で使用します)。
  7. PaaSのパブリックサイトに対して、OAuth2認証を使用してデータソースを作成します(パブリックサイト用のAmazon Kendraインデックス内で使用します)。
  8. 各データソースの同期を実行します。
  9. アクセス制御を持つプライベートサイトおよびリポジトリ向けのAmazon Kendraインデックスでテストクエリを実行します。
  10. アクセス制御のないパブリックサイト向けのAmazon Kendraインデックスでテストクエリを実行します。

前提条件

AWSアカウントが必要で、AWS Identity and Access Management(IAM)ロールとポリシーを作成するための権限を持っている必要があります。詳細については、「アクセス管理の概要:アクセス許可とポリシー」を参照してください。また、AWSおよびAWS Management Consoleの操作方法に基本的な知識が必要です。

Alfrescoオンプレミスプラットフォームの場合は、以下の手順を完了してください:

  1. プライベートサイトを作成するか、既存のサイトを使用します。
  2. リポジトリフォルダを作成するか、既存のリポジトリフォルダを使用します。
  3. リポジトリのURLを取得します。
  4. Basic認証の資格情報(ユーザーIDとパスワード)を取得します。
  5. 認証がALFRESCO_ADMINISTRATORSグループの一部であることを確認します。
  6. 公開X509証明書を.pem形式で取得し、ローカルに保存します。

Alfresco PaaSプラットフォームの場合、次の手順を実行します:

  1. プライベートサイトを作成するか、既存のサイトを使用します。
  2. パブリックサイトを作成するか、既存のサイトを使用します。
  3. リポジトリのURLを取得します。
  4. Basic認証の資格情報(ユーザーIDとパスワード)を取得します。
  5. OAuth2の資格情報(クライアントID、クライアントシークレット、トークンURL)を取得します。
  6. 認証ユーザーがALFRESCO_ADMINISTRATORSグループの一部であることを確認します。

ステップ1:サンプルドキュメントのアップロード

アップロードする各ドキュメントのテキストは5MB以下である必要があります。詳細については、Amazon Kendraサービスクォータを参照してください。各サイト内の既存のドキュメントをアップロードするか、サンプルドキュメントをアップロードできます。

次のスクリーンショットに示すように、Alfrescoオンプレミスのプライベートサイトには4つのドキュメントがアップロードされています。

Alfresco PaaSのプライベートサイトには3つのドキュメントがアップロードされています。

Alfresco PaaSのパブリックサイトには5つのドキュメントがアップロードされています。

Alfrescoオンプレミスのリポジトリには2つのドキュメントがアップロードされています。

リポジトリフォルダ内の1つ以上のドキュメントにawskendra:indexControlアスペクトを割り当てます。

ステップ2:Alfrescoのアクセス許可を設定する

Alfrescoのアクセス許可管理機能を使用して、サンプルユーザーがアップロードされたドキュメントを表示するためのアクセス権を付与します。ドキュメントレベルでアクセス許可を設定するために使用できる、メールアドレスを持つサンプルAlfrescoユーザー名がいくつかあることを前提としています。これらのユーザーはサイトをクロールするために使用されません。

次の例では、オンプレミスのプライベートサイトに対して、ユーザー「My Dev User1」と「My Dev User2」にサイトコンシューマーアクセスを提供しました。他のアップロードされたドキュメントに対しても同じ手順を繰り返します。

次の例では、PaaSのプライベートサイトに対して、ユーザー「Kendra User 3」にサイトコンシューマーアクセスを提供しました。他のアップロードされたドキュメントに対しても同じ手順を繰り返します。

Alfrescoリポジトリのドキュメントについて、私たちはユーザーMy Dev user1に、例のドキュメントへのコンシューマーアクセスを提供しました。

以下の表には、サイトまたはリポジトリ名、ドキュメント名、およびアクセス権がリストされています。

プラットフォーム サイトまたはリポジトリ名 ドキュメント名 ユーザーID
オンプレミス MyAlfrescoSite ChannelMarketingBudget.xlsx My Manager User3
オンプレミス MyAlfrescoSite wellarchitected-sustainability-pillar.pdf My Dev User1, My Dev User2
オンプレミス MyAlfrescoSite WorkDocs.docx My Dev User1, My Dev User2, My Manager User3
オンプレミス MyAlfrescoSite WorldPopulation.csv My Dev User1, My Dev User2, My Manager User3
PaaS MyAlfrescoCloudSite2 DDoS_White_Paper.pdf Kendra User3
PaaS MyAlfrescoCloudSite2 wellarchitected-framework.pdf Kendra User3
PaaS MyAlfrescoCloudSite2 ML_Training.pptx Kendra User1
PaaS MyAlfrescoCloudPublicSite batch_user.pdf Everyone
PaaS MyAlfrescoCloudPublicSite Amazon Simple Storage Service – User Guide.pdf Everyone
PaaS MyAlfrescoCloudPublicSite AWS Batch – User Guide.pdf Everyone
PaaS MyAlfrescoCloudPublicSite Amazon Detective.docx Everyone
PaaS MyAlfrescoCloudPublicSite Pricing.xlsx Everyone
オンプレミス リポジトリ:MyAlfrescoRepoFolder1 Polly-dg.pdf(aspect awskendra:indexControl) My Dev User1
オンプレミス リポジトリ:MyAlfrescoRepoFolder1 Transcribe-api.pdf(aspect awskendra:indexControl) My Dev User1

ステップ3:Amazon Kendraインデックスの設定

Alfrescoプライベートサイトにホストされているドキュメントのインデックス作成には、新しいAmazon Kendraインデックスを作成するか、既存のインデックスを使用することができます。新しいインデックスを作成するには、以下の手順を完了してください:

  1. Amazon Kendraコンソールで、「Alfresco-Private」という名前のインデックスを作成します。
  2. 新しいIAMロールを作成し、「次へ」を選択します。
  3. 「アクセス制御」で「はい」を選択します。
  4. 「トークンタイプ」で「JSON」を選択します。
  5. ユーザー名とグループはデフォルトのままにします。
  6. AWS IAM Identity Center(AWS Single Sign-Onの後継)との統合を想定していないため、ユーザーグループの展開は「なし」とします。
  7. 「次へ」を選択します。
  8. この例のソリューションでは、「Developer Edition」を選択します。
  9. 新しいインデックスを作成するために「作成」を選択します。

以下のスクリーンショットは、「Alfresco-Private」というインデックスの作成後のものです。

  1. 「ユーザーアクセス制御」タブでアクセス制御の設定を確認できます。

  1. 2番目のインデックスとして「Alfresco-Public」という名前のインデックスを作成するには、これらの手順を繰り返します。

ステップ4:オンプレミスのプライベートサイトのデータソースの作成

オンプレミスのプライベートサイトのデータソースを作成するには、以下の手順を完了してください:

  1. Amazon Kendraコンソールで、「Alfresco-Private」という名前のインデックスに移動します。
  2. ナビゲーションペインで「データソース」を選択します。
  3. 「データソースの追加」を選択します。

  1. Alfrescoコネクタに対して「コネクタの追加」を選択します。

  1. 「データソース名」に「Alfresco-OnPrem-Private」と入力します。
  2. オプションで説明を追加します。
  3. その他の設定はデフォルトのままにして、「次へ」を選択します。

Alfrescoオンプレミスサイトに接続するためには、コネクタがオンプレミスサーバーに対応する公開証明書へのアクセスが必要です。これは前提条件の1つでした。

  1. 別のブラウザタブを使用して、.pemファイルをAmazon Simple Storage Service(Amazon S3)バケットにアップロードします。

次の手順でこのS3バケット名を使用します。

  1. データソース作成ページに戻ります。
  2. ソースにはAlfrescoサーバーを選択します。
  3. AlfrescoリポジトリURLには、リポジトリURL(前提条件として作成されたもの)を入力します。
  4. AlfrescoユーザーアプリケーションURLには、リポジトリURLと同じ値を入力します。
  5. SSL証明書の場所には、Browse S3を選択し、.pemファイルをアップロードしたS3バケットを選択します。
  6. 認証には基本認証を選択します。
  7. AWS Secrets Managerシークレットには新しいシークレットを作成して追加を選択します。

ポップアップウィンドウが開き、AWS Secrets Managerシークレットを作成します。

  1. シークレットの名前、ユーザー名、パスワードを入力し、保存を選択します。

  1. 仮想プライベートクラウド(VPC)にはVPCなしを選択します。
  2. アイデンティティクローラーをオンにします。
  3. IAMロールには新しいIAMロールを作成を選択します。
  4. 次へを選択します。

データソースを設定して、1つ以上のAlfrescoサイトからコンテンツを同期することができます。この投稿では、オンプレミスのプライベートサイトに同期します。

  1. 同期するコンテンツには単一のAlfrescoサイトの同期を選択し、MyAlfrescoSiteを選択します。
  2. コメントを含めるを選択して、ドキュメントに加えてコメントも取得します。
  3. 同期モードにはフル同期を選択します。
  4. 頻度には要求時に実行(必要に応じて別の頻度オプションを選択)を選択します。
  5. 次へを選択します。

  1. AlfrescoドキュメントフィールドをAmazon Kendraインデックスフィールドにマッピングします(デフォルトのままでかまいません)、そして次へを選択します。

  1. レビューと作成ページで、すべての情報を確認し、データソースを追加を選択します。

データソースが作成された後、データソースページが以下のスクリーンショットに表示されます。

ステップ5:Amazon Kendra固有の側面を持つオンプレミスリポジトリドキュメントのデータソースを作成する

前と同様に、Amazon Kendra固有の側面を持つOn-Premリポジトリドキュメントのデータソースを作成します:

  1. Amazon Kendraコンソールで、Alfresco-Privateインデックスに移動します。
  2. ナビゲーションペインでデータソースを選択します。
  3. データソースの追加を選択します。
  4. Alfrescoコネクターのコネクターの追加を選択します。
  5. データソース名Alfresco-OnPrem-Aspectsを入力します。
  6. オプションで説明を追加します。
  7. 残りの設定はデフォルトのままにして、次へを選択します。
  8. ソースで、Alfrescoサーバーを選択します。
  9. AlfrescoリポジトリURLに、リポジトリURL(前提条件として作成されたもの)を入力します。
  10. AlfrescoユーザーアプリケーションURLに、リポジトリURLと同じ値を入力します。
  11. SSL証明書の場所で、S3を参照を選択し、.pemファイルをアップロードしたS3バケットを選択します。
  12. 認証で、基本認証を選択します。
  13. AWS Secrets Managerシークレットで、前に作成したシークレットを選択します。
  14. 仮想プライベートクラウド(VPC)で、VPCなしを選択します。
  15. アイデンティティクローラーをオフにします。
  16. IAMロールで、新しいIAMロールを作成を選択します。
  17. 次へを選択します。

このスコープでは、コネクターはawskendra:indexControlという名前のアスペクトが割り当てられたOn-Premサーバーリポジトリドキュメントのみを取得します。

  1. 同期するコンテンツで、Alfrescoアスペクトの同期を選択します。
  2. 同期モードで、フル同期を選択します。
  3. 頻度で、必要に応じて要求に応じて実行(または他の頻度オプション)を選択します。
  4. 次へを選択します。
  5. AlfrescoドキュメントのフィールドをAmazon Kendraインデックスフィールドにマッピングします(デフォルトのままにしても構いません)、その後次へを選択します。
  6. レビューと作成ページで、すべての情報を確認し、データソースの追加を選択します。

データソースが作成された後、以下のスクリーンショットに示すようにデータソースページが表示されます。

ステップ6:PaaSプライベートサイトのデータソースを作成する

PaaSプライベートサイトのデータソースを作成するために、前のセクションと同様の手順を実行してください:

  1. Amazon Kendraコンソールで、Alfresco-Privateインデックスに移動します。
  2. ナビゲーションペインでデータソースを選択します。
  3. データソースの追加を選択します。
  4. Alfrescoコネクターのコネクターの追加を選択します。
  5. データソース名Alfresco-Cloud-Privateを入力します。
  6. オプションで説明を追加します。
  7. 残りの設定はデフォルトのままにして、次へを選択します。
  8. ソースで、Alfrescoクラウドを選択します。
  9. AlfrescoリポジトリURLに、リポジトリURL(前提条件として作成されたもの)を入力します。
  10. AlfrescoユーザーアプリケーションURLに、リポジトリURLと同じ値を入力します。
  11. 認証で、基本認証を選択します。
  12. AWS Secrets Managerシークレットで、新しいシークレットの作成と追加を選択します。
  13. シークレットの名前、ユーザー名、パスワードを入力して、保存を選択します。
  14. 仮想プライベートクラウド(VPC)で、VPCなしを選択します。
  15. アイデンティティクローラーをオフにします。
  16. IAMロールで、新しいIAMロールを作成を選択します。
  17. 次へを選択します。

データソースを設定して、1つ以上のAlfrescoサイトからコンテンツを同期することができます。この投稿では、データソースをPaaSプライベートサイト「MyAlfrescoCloudSite2」から同期するように設定します。

  1. 同期するコンテンツに、単一のAlfrescoサイトの同期を選択し、「MyAlfrescoCloudSite2」を選択します。
  2. コメントを含めるを選択します。
  3. 同期モードには、フル同期を選択します。
  4. 頻度には、要求に応じて実行(必要に応じて別の頻度オプションを選択します)を選択します。
  5. 次へを選択します。
  6. AlfrescoのドキュメントフィールドをAmazon Kendraのインデックスフィールドにマッピングします(デフォルトのままで構いません)。次へを選択します。
  7. レビューと作成ページで、すべての情報を確認し、データソースを追加します。

データソースが作成された後、次のスクリーンショットに表示されるように、データソースページが表示されます。

ステップ7:PaaSパブリックサイトのデータソースを作成する

前と同様の手順で、PaaSパブリックサイトのデータソースを作成します:

  1. Amazon Kendraコンソールで、Alfresco-Publicインデックスに移動します。
  2. ナビゲーションパネルでデータソースを選択します。
  3. データソースを追加を選択します。
  4. Alfrescoコネクタのためにコネクタを追加を選択します。
  5. データソース名には、Alfresco-Cloud-Publicを入力します。
  6. オプションで説明を追加します。
  7. 残りの設定はデフォルトのままにして、次へを選択します。
  8. ソースには、Alfrescoクラウドを選択します。
  9. AlfrescoリポジトリのURLには、リポジトリのURL(前提条件として作成されたもの)を入力します。
  10. AlfrescoユーザーアプリケーションのURLには、リポジトリのURLと同じ値を入力します。
  11. 認証には、OAuth2.0認証を選択します。
  12. AWS Secrets Managerのシークレットには、新しいシークレットを作成して追加を選択します。
  13. シークレットの名前、クライアントID、クライアントシークレット、トークンURLを入力し、保存を選択します。
  14. 仮想プライベートクラウド(VPC)には、いいえを選択します。
  15. アイデンティティクローラをオフにします。
  16. IAMロールには、新しいIAMロールを作成を選択します。
  17. 次へを選択します。

このデータソースをPaaSパブリックサイト「MyAlfrescoCloudPublicSite」に同期するように設定します。

  1. 同期するコンテンツに、単一のAlfrescoサイトの同期を選択し、「MyAlfrescoCloudPublicSite」を選択します。
  2. オプションでコメントを含めるを選択します。
  3. 同期モードには、フル同期を選択します。
  4. 頻度には、要求に応じて実行(必要に応じて別の頻度オプションを選択します)を選択します。
  5. 次へを選択します。
  6. AlfrescoのドキュメントフィールドをAmazon Kendraのインデックスフィールドにマッピングします(デフォルトのままで構いません)。次へを選択します。
  7. レビューと作成ページで、すべての情報を確認し、データソースを追加します。

データソースが作成された後、次のスクリーンショットに表示されるように、データソースページが表示されます。

ステップ8:各データソースの同期を実行する

各データソースに移動し、今すぐ同期を選択します。一度に1つの同期のみを完了してください。

すべてのデータソースの同期が完了するのを待ちます。各データソースの同期が完了すると、次のスクリーンショットに示す状態が表示されます。

また、同期実行履歴の下で特定の同期に関するAmazon CloudWatchログを表示することもできます。

ステップ9:アクセス制御を使用してプライベートインデックスでテストクエリを実行する

さあ、ソリューションをテストする時間です。最初にアクセス制御を使用してプライベートインデックスでクエリを実行します:

  1. Amazon KendraコンソールでAlfresco-Privateインデックスに移動し、インデックスされたコンテンツを検索を選択します。

  1. 検索フィールドにクエリを入力します。

次のスクリーンショットに示すように、Amazon Kendraは結果を返しませんでした。

  1. トークンを適用を選択します。
  2. My Dev User1ユーザーに対応するメールアドレスを入力し、適用を選択します。

Amazon Kendraのアクセス制御は、Alfrescoユーザー名に関連付けられたメールアドレスに基づいて動作します。

  1. 検索を再実行します。

アクセス制御の設定に基づいて、検索結果はドキュメントリスト(以下の例ではwellarchitected-sustainability-pillar.pdfを含む)となります。

同じクエリを再度実行し、これらのドキュメントにアクセス権がないメールアドレスを提供すると、結果リストにこれらのドキュメントは表示されません。

  1. アスペクトawskendra:indexControlに基づいてドキュメント内を検索するための別のクエリを入力します。
  2. トークンを適用を選択し、My Dev User1ユーザーに対応するメールアドレスを入力し、適用を選択します。
  3. クエリを再実行します。

ステップ10:アクセス制御なしで公開インデックスでテストクエリを実行する

同様に、アクセス制御なしで公開インデックスでクエリを実行して、ソリューションをテストできます:

  1. Amazon Kendraコンソールに移動し、Alfresco-Publicインデックスを選択して、「インデックス内のコンテンツを検索」を選択します。
  2. 検索クエリを実行します。

この例のAlfrescoパブリックサイトはアクセス制御が設定されていないため、アクセストークンは使用しません。

クリーンアップ

将来のコストを回避するために、このソリューションの一部として作成したリソースをクリーンアップしてください。インデックス内の新しく追加されたAlfrescoデータソースを削除します。このソリューションのテスト中に新しいAmazon Kendraインデックスを作成した場合は、それらも削除してください。

結論

新しいAlfrescoコネクターを使用することで、組織はAmazon Kendraのパワーを利用して、アカウントに格納されている情報のリポジトリに安全にアクセスし、インテリジェントな検索を行うことができます。

これらの可能性やその他の情報については、Amazon Kendraデベロッパーガイドを参照してください。Alfrescoからデータをインジェストする際にメタデータやコンテンツを作成、変更、または削除する方法については、「データのインジェスト中にドキュメントを豊かにする」および「Amazon Kendraでカスタムドキュメントエンリッチメントを使用して検索エクスペリエンスを強化するためのコンテンツとメタデータのエンリッチ」を参照してください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

Learning to build—Towards AI コミュニティニュースレター第1号

私たちは最新のニュースレターをお知らせすることをとても楽しみにしています!それは私たちの共同体についてのすべてですコ...

機械学習

大規模画像モデルのための最新のCNNカーネル

「OpenAIのChatGPTの驚異的な成功が大型言語モデルのブームを引き起こしたため、多くの人々が大型画像モデルにおける次のブレ...

機械学習

Amazon SageMakerの自動モデルチューニングを使用したハイパーパラメータ最適化の高度なテクニックを探求してください

「高性能な機械学習(ML)ソリューションを作るためには、トレーニングパラメータであるハイパーパラメータを探索し最適化す...

AIニュース

Amazon SageMakerを使用した生成型AIモデルにおいて、Forethoughtがコストを66%以上削減する方法

この記事は、Forethought Technologies, Inc.のエンジニアリングディレクターであるJad Chamounと、同社のシニアMLエンジニア...

機械学習

AIハイパーソナライゼーションとは何ですか?利点、事例、倫理的懸念

AIのハイパーカスタマイズの概念、メカニズム、および事例について探求してくださいその利点と倫理的な問題について学びましょう

機械学習

「Mixtral 8x7Bについて知っていること ミストラルの新しいオープンソースLLM」

「ミストラルAIは、オープンソースのLLM(語彙・言語モデル)の領域で限界に挑戦する最も革新的な企業の一つですミストラルの...