ナレッジベースのウェブページをクロールする - Amazon Bedrock

ナレッジベースのウェブページをクロールする

Amazon Bedrock が提供するウェブクローラーは、Amazon Bedrock ナレッジベースで使用するために選択した URL に接続してクロールします。選択した URL に設定した範囲または制限に従って、ウェブサイトのページをクロールすることができます。Amazon Bedrock の AWS マネジメントコンソール、または CreateDataSource API を使用してウェブサイトのページをクロールできます (Amazon Bedrock supported SDKs and AWS CLI を参照)。現在、このデータソースで使用できるのは Amazon OpenSearch Serverless ベクトルストアのみです。

注記

ウェブクローラーデータソースコネクタはプレビューリリース段階であり、変更される可能性があります。

クロールするウェブサイトを選択するときは、Amazon 適正利用規約およびその他の Amazon 利用規約のすべてに準拠する必要があります。自分のウェブページ、またはクロールを許可され、robots.txt 設定を優先する必要があるウェブページのインデックスを作成するためにのみ、ウェブクローラーを使用する必要があることに留意してください。

ウェブクローラーは、RFC 9309 に従って robots.txt を尊重します

クロールできるウェブページコンテンツアイテムの数とコンテンツアイテムあたりの MB には制限があります。「Quotas for knowledge bases」を参照してください。

サポートされている機能

ウェブクローラーは、シード URL から始まる HTML ページに接続してクロールし、同じ上位のプライマリドメインとパスの下にあるすべての子リンクを巡回します。HTML ページのいずれかがサポートされているドキュメントを参照している場合、それらのドキュメントが同じ上位のプライマリドメイン内にあるかどうかにかかわらず、ウェブクローラーはそれらのドキュメントを取得します。クロール設定を変更することで、クロール動作を変更できます - 「接続設定」を参照する。

以下がサポートされています。

  • 複数のソース URL を選択してクロールし、ホストのみをクロールするかサブドメインも含めるように URL の範囲を設定します。

  • ソース URL の一部である静的ウェブページをクロールします。

  • カスタムユーザーエージェントのサフィックスを指定して、独自のクローラーのルールを設定します。

  • フィルターパターンに一致する特定の URL を含めるか除外します。

  • 「許可」や「拒否」などの標準の robots.txt ディレクティブを尊重します。

  • クロールする URL の範囲を制限し、オプションでフィルターパターンに一致する URL を除外します。

  • URL のクローリング速度とクローリングするページの最大数を制限します。

  • Amazon CloudWatch でクロールされた URL のステータスの表示

前提条件

ウェブクローラーを使用するには、以下を確認してください

  • ソース URL をクロールする権限があることを確認します。

  • ソース URL に対応する robots.txt へのパスが URL のクロールをブロックしていないことを確認します。ウェブクローラーは、robots.txt の基準に準拠しています。ウェブサイトに robots.txt が見つからない場合は、デフォルトで disallow。ウェブクローラーは、RFC 9309 に従って robots.txt を尊重します。カスタムユーザーエージェントのサフィックスを指定して、独自のクローラーのルールを設定することもできます。詳細については、このページの 接続設定 手順の「ウェブクローラー URL アクセス」を参照してください。

  • CloudWatch Logs 配信を有効にし、ウェブクローラーログの例に従って、ウェブコンテンツを取り込むためのデータインジェストジョブのステータスと、特定の URL を取得できないかどうかを表示します。

注記

クロールするウェブサイトを選択するときは、Amazon 適正利用規約およびその他の Amazon 利用規約のすべてに準拠する必要があります。自分のウェブページ、またはクロールすることを許可されているウェブページをインデックスするためにのみ、ウェブクローラーを使用することに留意してください。

接続設定

URL のクロール、包含/除外フィルター、URL アクセス、増分同期、およびこれらの動作の同期スコープの詳細については、以下を選択してください。

各ページ URL とシード URL の特定の関係に基づいて、クロールする URL の範囲を制限することができます。クローリングを高速化するために、シード URL のホストと初期 URL パスと同じものを持つ URL に制限できます。より広い範囲をクロールする場合は、同じホストを持つ URL をクロールするか、シード URL の任意のサブドメイン内をクロールするかを選択できます。

以下のオプションから選択できます。

  • デフォルト: 同じホストに属し、同じ初期 URL パスを持つウェブページのクロールに制限します。例えば、シード URL が「https://aws.amazon.com/bedrock/」の場合、「https://aws.amazon.com/bedrock/agents/」のように、このパスと、このパスから拡張されたウェブページのみがクロールされます。例えば、「https://aws.amazon.com/ec2/」のような 兄弟 URL はクロールされません。

  • ホストのみ: 同じホストに属するウェブページにクローリングを制限します。例えば、シード URL が「https://aws.amazon.com/bedrock/」の場合、「https://aws.amazon.com/ec2」のように「https://aws.amazon.com」を含むウェブページもクロールされます。

  • サブドメイン: シード URL と同じプライマリドメインを持つウェブページのクロールを含めます。例えば、シード URL が「https://aws.amazon.com/bedrock/」の場合、「https://www.amazon.com」のように「amazon.com」(サブドメイン) を含むウェブページもクロールされます。

注記

過剰になりうるウェブページをクローリングしていないことを確認してください。フィルターや範囲の制限なしで wikipedia.org などの大規模なウェブサイトをクロールすることはお勧めしません。大規模なウェブサイトのクローリングには非常に時間がかかります。

サポートされているファイルタイプは、範囲に関係なく、またファイルタイプに除外パターンがない場合にクロールされます。

ウェブクローラーは静的ウェブサイトをサポートしています。

URL のクローリング速度を制限して、クローリング速度のスロットリングを制御することもできます。1 分あたりにウェブサイトホストごとにクロールされる URL の最大数を設定します。さらに、クロールするウェブページの総数の最大数 (最大 25,000) を設定することもできます。ソース URL のウェブページの合計数が設定した最大値を超えると、データソースの同期/取り込みジョブは失敗することに注意してください。

適用範囲に従って、特定の URL を含めることも除外することもできます。サポートされているファイルタイプは、範囲に関係なく、またファイルタイプに除外パターンがない場合にクロールされます。包含フィルターと除外フィルターを指定し、両方が URL に一致する場合、除外フィルターが優先され、ウェブコンテンツはクロールされません。

重要

破壊的なバックトラックと先読みにつながる問題のある正規表現パターンフィルターは拒否されます。

「.pdf」または PDF ウェブページのアタッチメントで終わる URL を除外する正規表現フィルターパターンの例: ".*\.pdf$"

ウェブクローラー を使用して、クロールが許可されているウェブサイトのページをクロールすることができます。

クロールするウェブサイトを選択するときは、Amazon 適正利用規約およびその他の Amazon 利用規約のすべてに準拠する必要があります。自分のウェブページ、またはクロールすることを許可されているウェブページをインデックスするためにのみ、ウェブクローラーを使用することに留意してください。

ウェブクローラーは、RFC 9309 に従って robots.txt を尊重します

特定のユーザーエージェントボットを指定して、ユーザーエージェントがソース URL をクロールすることを「許可」または「拒否」できます。ウェブサイトの robots.txt ファイルを変更して、ウェブクローラーがウェブサイトをクロールする方法を制御できます。クローラーはまず bedrockbot-UUID ルールを探し、次に robots.txt ファイル内の一般的な bedrockbot ルールを探します。

ボット保護システムでクローラーを許可リストに登録するために使用できる User-Agent サフィックスを追加することもできます。ユーザーエージェントの文字列を偽装できないようにするために、このサフィックスを robots.txt ファイルに追加する必要はありません。例えば、すべてのウェブサイトコンテンツをウェブクローラーがクロールできるようにして、他のロボットのクローリングを禁止するには、次のディレクティブを使用します。

User-agent: bedrockbot-UUID # Amazon Bedrock Web Crawler Allow: / # allow access to all pages User-agent: * # any (other) robot Disallow: / # disallow access to any pages

ウェブクローラーを実行するたびに、ソース URL から到達可能で、範囲とフィルターに一致するすべての URL のコンテンツを取得します。すべてのコンテンツの初回同期後に増分同期を行う場合、Amazon Bedrock はナレッジベースを新規および変更されたコンテンツで更新し、存在しない古いコンテンツを削除します。時折、クローラーはコンテンツがウェブサイトから削除されたかどうかを判断できないことがあります。この場合、ナレッジベースの古いコンテンツを保存する側に回ることになります。

データソースをナレッジベースと同期するには、StartIngestionJob API を使用するか、コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。

重要

データソースから同期するすべてのデータは、データを取得する bedrock:Retrieve アクセス許可を持つすべてのユーザーが利用できるようになります。これには、データソースのアクセス許可が制御されているデータを含めることもできます。詳細については、「Knowledge base permissions」を参照してください。

Console
ウェブクローラーデータソースをナレッジベースに接続する
  1. Amazon Bedrock ナレッジベースでデータソースに接続してナレッジベースを作成する の手順に従って、データソースとして [ウェブクローラー] を選択します。

  2. データソース名と説明 (オプション) を入力します。

  3. クロールする URL のソース URL を指定します。ソース URL の追加を選択すると、最大 9 つの URL を追加できます。ソース URL を提供することで、そのドメインをクロールする権限があることを確認することになります。

  4. [詳細設定] セクションでは、必要に応じて以下を設定できます。

    • 一時的なデータストレージ用の KMS キー。– データを埋め込みに変換するとともに、デフォルト AWS マネージドキー または独自の KMS キーを使用して一時的なデータを暗号化できます。詳細については、「データインジェスト時の一時データストレージの暗号化」を参照してください。

    • データ削除ポリシー – デフォルトでベクトルストアに保存されているデータソースのベクトル埋め込みを削除したり、ベクトルストアデータを保持するように選択したりできます。

  5. (オプション) ウェブサーバーにアクセスするときにクローラーまたはボットを識別する bedrock-UUID- のユーザーエージェントサフィックスを指定します。

  6. [同期の範囲] セクションで以下を設定します。

    1. ソース URL をクローリングする [ウェブサイトのドメイン範囲] を選択します。

      • デフォルト: 同じホストに属し、同じ初期 URL パスを持つウェブページのクロールに制限します。例えば、シード URL が「https://aws.amazon.com/bedrock/」の場合、「https://aws.amazon.com/bedrock/agents/」のように、このパスと、このパスから拡張されたウェブページのみがクロールされます。例えば、「https://aws.amazon.com/ec2/」のような 兄弟 URL はクロールされません。

      • ホストのみ: 同じホストに属するウェブページにクローリングを制限します。例えば、シード URL が「https://aws.amazon.com/bedrock/」の場合、「https://aws.amazon.com/ec2」のように「https://aws.amazon.com」を含むウェブページもクロールされます。

      • サブドメイン: シード URL と同じプライマリドメインを持つウェブページのクロールを含めます。例えば、シード URL が「https://aws.amazon.com/bedrock/」の場合、「https://www.amazon.com」のように「amazon.com」(サブドメイン) を含むウェブページもクロールされます。

      注記

      過剰になりうるウェブページをクローリングしていないことを確認してください。フィルターや範囲の制限なしで wikipedia.org などの大規模なウェブサイトをクロールすることはお勧めしません。大規模なウェブサイトのクローリングには非常に時間がかかります。

      サポートされているファイルタイプは、範囲に関係なく、またファイルタイプに除外パターンがない場合にクロールされます。

    2. クローリング速度の最大スロットリング を入力します。ホストごとに 1 分あたり 1~300 URL を取り込みます。クローリング速度が高いほど負荷は増加しますが、所要時間は短くなります。

    3. データソース同期の最大ページ数を 1~25000 の間で入力します。ソース URL からクロールされるウェブページの最大数を制限します。ウェブページがこの数を超えると、データソースの同期に失敗し、ウェブページは取り込まれません。

    4. URL 正規表現パターン (オプション) では、ボックスに正規表現パターンを入力して、包含パターンまたは除外パターンを追加できます。[新しいパターンを追加する] を選択すると、包含および除外フィルターパターンをそれぞれ最大 25 個追加できます。包含パターンと除外パターンは、適用範囲に従ってクロールされます。競合がある場合、除外パターンが優先されます。

  7. (オプション) [コンテンツの解析とチャンキング] セクションで、データの解析とチャンキングの方法をカスタマイズできます。これらのカスタマイズの詳細については、次のリソースを参照してください。

  8. 埋め込みモデルとベクトルストアの選択を続行します。残りの手順を確認するには、「Amazon Bedrock ナレッジベースでデータソースに接続してナレッジベースを作成する」に戻り、データソースを接続した後の手順から続行します。

API

ウェブクローラーを使用してナレッジベースをデータソースに接続するには、Amazon Bedrock エージェントのビルドタイムエンドポイントCreateDataSource リクエストを送信し、DataSourceConfigurationtype フィールドに WEB を指定して、webConfiguration フィールドを含めます。以下は、Amazon Bedrock ナレッジベースのウェブクローラーの設定例です。

{ "webConfiguration": { "sourceConfiguration": { "urlConfiguration": { "seedUrls": [{ "url": "https://www.examplesite.com" }] } }, "crawlerConfiguration": { "crawlerLimits": { "rateLimit": 50, "maxPages": 100 }, "scope": "HOST_ONLY", "inclusionFilters": [ "https://www\.examplesite\.com/.*\.html" ], "exclusionFilters": [ "https://www\.examplesite\.com/contact-us\.html" ], "userAgent": "CustomUserAgent" } }, "type": "WEB" }

オプションの vectorIngestionConfiguration フィールドを含めることで取り込みに適用できるカスタマイズの詳細については、「データソースの取り込みをカスタマイズする」を参照してください。