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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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

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

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

サポートされている機能

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

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

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

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

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

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

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

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

  • クロールする URLs のレートと最大ページ数を制限します。

  • Amazon CloudWatch でクロールされた URLsのステータスを表示する

前提条件

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

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

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

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

注記

クロールするウェブサイトを選択するときは、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 などの大規模なウェブサイトをクロールすることはお勧めしません。大規模なウェブサイトのクローリングには非常に時間がかかります。

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

Web Crawler は、静的ウェブサイトと動的ウェブサイトをサポートしています。

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

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

重要

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

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

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

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

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

特定のユーザーエージェントボットを指定して、ユーザーエージェントがソース URLs」にすることができます。ウェブサイトの robots.txt ファイルを変更して、ウェブクローラーがソース URLs をクロールする方法を制御できます。クローラは最初に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
Web Crawler データソースをナレッジベースに接続する
  1. 「」の手順に従ってAmazon Bedrock ナレッジベースでナレッジベースを作成する、データソースとしてウェブクローラーを選択します。

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

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

  4. 詳細設定セクションでは、オプションで以下を設定できます。

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

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

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

  6. Sync scope セクションで以下を設定します。

    1. ソース URLs をクロールするためのウェブサイトドメイン範囲を選択します。

      • デフォルト: 同じホストに属し、同じ初期 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~25,000 です。ソース URLs からクロールされるウェブページの最大数を制限します。ウェブページがこの数を超えると、データソースの同期は失敗し、ウェブページは取り込まれません。

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

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

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

API

WebCrawler を使用してナレッジベースをデータソースに接続するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用して CreateDataSource リクエストを送信し、DataSourceConfigurationWEB typeフィールドに を指定して、 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フィールドを含めることで取り込みに適用できるカスタマイズについては、「」を参照してくださいデータソースの取り込みをカスタマイズする