Amazon Bedrock ナレッジベースのウェブページをクロールする
Amazon Bedrock が提供するウェブクローラーは、Amazon Bedrock ナレッジベースで使用するために選択した URL に接続してクロールします。選択した URL に設定した範囲または制限に従って、ウェブサイトのページをクロールすることができます。Amazon Bedrock の AWS マネジメントコンソール、または CreateDataSource API を使用してウェブサイトのページをクロールできます (Amazon Bedrock supported SDKs and AWS CLI を参照)。
データソースとしてウェブ URL をクロールすることはプレビューリリースの段階であり、変更される可能性があります。
クロールするウェブサイトを選択するときは、Amazon 適正利用規約およびその他の Amazon 利用規約のすべてに準拠する必要があります。自分のウェブページ、またはクロールすることを許可されているウェブページをインデックスするためにのみ、ウェブクローラーを使用することに留意してください。
ウェブクローラーは、RFC 9309 に従って robots.txt を尊重します
クロールできるウェブページコンテンツアイテムの数とコンテンツアイテムあたりの MB には制限があります。「Quotas for knowledge bases」を参照してください。
サポートされている機能
ウェブクローラーは、シード URL から始まる HTML ページに接続してクロールし、同じ上位のプライマリドメインとパスの下にあるすべての子リンクを巡回します。HTML ページのいずれかがサポートされているドキュメントを参照している場合、それらのドキュメントが同じ上位のプライマリドメイン内にあるかどうかにかかわらず、ウェブクローラーはそれらのドキュメントを取得します。クロール設定を変更することで、クロール動作を変更できます - 「接続設定」を参照する。
以下がサポートされています。
-
クロールする複数の URL を選択する
-
「許可」や「許可しない」などの標準の robots.txt ディレクティブを尊重する
-
クロールする URL の範囲を制限し、オプションでフィルターパターンに一致する URL を除外する
-
URL のクローリング速度を制限する
-
Amazon CloudWatch でクローリング中にアクセスされた URL のステータスの表示
前提条件
ウェブクローラーを使用するには、以下を確認してください。
-
ソース URL をクロールする権限があることを確認します。
-
ソース URL に対応する robots.txt へのパスが URL のクロールをブロックしていないことを確認します。ウェブクローラーは、robots.txt の基準に準拠しています。ウェブサイトに robots.txt が見つからない場合は、デフォルトで disallow
。ウェブクローラーは、RFC 9309 に従って robots.txt を尊重します。
-
動的に生成されたコンテンツのクローリングは現在サポートされていないため、ソース URL ページが JavaScript で動的に生成されたかどうかを確認します。これは、ブラウザに view-source:https://examplesite.com/site/
と入力して確認することができます。body
要素に含まれる要素が div
だけで、a href
の要素がほとんどまたはまったくない場合、ページは動的に生成されている可能性があります。ブラウザで JavaScript を無効にしてウェブページを再読み込みし、コンテンツが正しくレンダリングされ、目的のウェブページへのリンクが含まれているかどうかを観察できます。
-
ウェブコンテンツを取り込むためのデータインジェストのジョブのステータスを表示するため、そして特定の URL を取得できない場合に、CloudWatch Logs 配信を有効 にします。
クロールするウェブサイトを選択するときは、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 を含めることも除外することもできます。サポートされているファイルタイプは、範囲に関係なく、またファイルタイプに除外パターンがない場合にクロールされます。包含フィルターと除外フィルターを指定し、両方が URL に一致する場合、除外フィルターが優先され、ウェブコンテンツはクロールされません。
「.pdf」または PDF ウェブページのアタッチメントで終わる URL を除外する正規表現フィルターパターンの例: ".*\.pdf$"
ウェブクローラー を使用して、クロールが許可されているウェブサイトのページをクロールすることができます。
クロールするウェブサイトを選択するときは、Amazon 適正利用規約およびその他の Amazon 利用規約のすべてに準拠する必要があります。自分のウェブページ、またはクロールすることを許可されているウェブページをインデックスするためにのみ、ウェブクローラーを使用することに留意してください。
ウェブクローラーは、RFC 9309 に従って robots.txt を尊重します
ウェブクローラーを実行するたびに、ソース URL から到達可能で、範囲とフィルターに一致するすべての URL のコンテンツを取得します。すべてのコンテンツの初回同期後に増分同期を行う場合、Amazon Bedrock はナレッジベースを新規および変更されたコンテンツで更新し、存在しない古いコンテンツを削除します。時折、クローラーはコンテンツがウェブサイトから削除されたかどうかを判断できないことがあります。この場合、ナレッジベースの古いコンテンツを保存する側に回ることになります。
データソースをナレッジベースと同期するには、StartIngestionJob API を使用するか、コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。
データソースから同期するすべてのデータは、データを取得する bedrock:Retrieve
アクセス許可を持つすべてのユーザーが利用できるようになります。これには、データソースのアクセス許可が制御されているデータを含めることもできます。詳細については、「Knowledge base permissions」を参照してください。
- Console
-
次の手順では、Amazon Bedrock ナレッジベースのウェブクローラーを設定します。ウェブクローラーは、コンソールのナレッジベース作成ステップの一部として設定します。
-
Amazon Bedrock アクセス許可を持つ IAM ロールを使用して AWS Management Console にサインインし、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。
-
左側のナビゲーションペインで [ナレッジベース] を選択します。
-
[ナレッジベース] セクションで、[ナレッジベースを作成] を選択します。
-
ナレッジベースの詳細を入力します。
-
ナレッジベース名と説明 (オプション) を入力します。
-
ナレッジベースの作成に必要なアクセス許可の AWS Identity and Access Management ロールを指定します。
必要なすべてのアクセス許可を持つ IAM ロールは、ナレッジベースを作成するためのコンソール手順の一部として作成できます。ナレッジベースを作成するステップを完了すると、必要なすべてのアクセス許可を持つ IAM ロールが特定のナレッジベースに適用されます。
-
ナレッジベースに割り当てるタグを作成します。
次のセクションに移動して、データソースを設定します。
-
データソースとしてウェブクローラーを選択し、設定の詳細を指定します。
(オプション) デフォルトのデータソース名を変更し、説明を入力します。
-
クロールする URL のソース URL を指定します。ソース URL の追加を選択すると、最大 9 つの URL を追加できます。ソース URL を提供することで、そのドメインをクロールする権限があることを確認することになります。
-
詳細設定を確認します。デフォルトで選択された設定をオプションで変更できます。
KMS key 設定では、カスタムキーを選択するか、デフォルトのデータ暗号化キーを使用できます。
データを埋め込みに変換する際、デフォルトで、Amazon Bedrock は AWS が所有および管理するキーを使用して一時データを暗号化します。独自の KMS キーを使用できます。詳細については、「データインジェスト時の一時データストレージの暗号化」を参照してください。
データ削除ポリシーの設定では、次のいずれかを選択できます。
-
削除: ナレッジベースまたはデータソースリソースの削除時に、ベクトル埋め込みに変換されたデータソースからすべてのデータを削除します。ベクトルストア自体は削除されず、データのみが削除されます。このフラグは、AWS アカウントが削除された場合は無視されます。
-
保持: ナレッジベースまたはデータソースリソースの削除時に、ベクトル埋め込みに変換されたデータソースからすべてのデータを保持します。ナレッジベースまたはデータソースリソースを削除しても、ベクトルストア自体は削除されません。
-
ソース 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 などの大規模なウェブサイトをクロールすることはお勧めしません。大規模なウェブサイトのクローリングには非常に時間がかかります。
サポートされているファイルタイプは、範囲に関係なく、またファイルタイプに除外パターンがない場合にクロールされます。
-
クローリング速度の最大スロットリング を入力します。ホストごとに 1 分あたり 1~300 URL を取り込みます。クローリング速度が高いほど負荷は増加しますが、所要時間は短くなります。
-
URL 正規表現パターン (オプション) では、ボックスに正規表現パターンを入力して、包含パターンまたは除外パターンを追加できます。[新しいパターンを追加する] を選択すると、包含および除外フィルターパターンをそれぞれ最大 25 個追加できます。包含パターンと除外パターンは、適用範囲に従ってクロールされます。競合がある場合、除外パターンが優先されます。
-
デフォルトまたはカスタマイズされたチャンキングおよび解析設定を選択します。
-
カスタム設定を選択した場合は、次のいずれかのチャンキングオプションを選択します。
-
固定サイズのチャンキング: コンテンツは、設定されたおおよそのトークンサイズのテキストのチャンクに分割されます。チャンク内のトークン数の上限と、連続するチャンク間の重複率を設定できます。
-
デフォルトのチャンキング: コンテンツは最大 300 トークンのテキストのチャンクに分割されます。1 つのドキュメントまたはコンテンツの一部に含まれるトークンが 300 個未満の場合、ドキュメントはそれ以上分割されません。
-
階層的チャンキング: 親子チャンクのネストされた構造に整理されたコンテンツ。親チャンクトークンの最大サイズと子チャンクトークンの最大サイズを設定します。連続する親チャンク間および連続する子チャンク間で重複するトークンの絶対数も設定できます。
-
セマンティックチャンキング: 意味的に似たテキストチャンクまたは文のグループに整理されたコンテンツ。対象文/現在文を囲む文をグループ化するための文の最大数を設定します (バッファサイズ)。また、テキストを意味のあるチャンクに分割するためのブレークポイントパーセンタイルしきい値も設定します。セマンティックチャンキングは基盤モデルを使用します。基盤モデルのコストの詳細については、「Amazon Bedrock の料金」を参照してください。
-
チャンキングなし: 各ドキュメントは 1 つのテキストチャンクとして扱われます。ドキュメントを別々のファイルに分割して前処理することをお勧めします。
データソースの作成後は、チャンキング戦略を変更することはできません。
-
Amazon Bedrock の基盤モデルをドキュメントに使用して、標準テキスト以上のものを解析できます。例えば、ドキュメント内の表形式データを、構造がそのままの状態で解析できます。基盤モデルのコストの詳細については、「Amazon Bedrock の料金」を参照してください。
-
AWS Lambda 関数を使用してチャンキング戦略をカスタマイズし、ドキュメントメタデータ属性/フィールドの処理方法と取り込み方法を選択できます。Lambda 関数の入力と出力の Amazon S3 バケットの場所を指定します。
次のセクションに移動して、ベクトルストアを設定します。
-
データをベクトル埋め込みに変換するモデルを選択します。
Amazon Bedrock が埋め込みを保存、更新、および管理できるようにベクトルストアを作成します。新しいベクトルストアを簡単に作成することも、作成済みのサポートされているベクトルストアから選択することもできます。新しいベクトルストアを作成すると、Amazon OpenSearch Serverless ベクトル検索コレクションと、必須フィールドを含むインデックスが設定されます。サポートされているベクトルストアから選択する場合は、ベクトルフィールド名とメタデータフィールド名をマッピングする必要があります。
次のセクションに移動して、ナレッジベース設定を確認します。
-
ナレッジベースの詳細を確認します。次に進みナレッジベースを作成する前に、任意のセクションを編集できます。
ナレッジベースの作成にかかる時間は、特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスは準備中または利用可能な状態に変更されます。
ナレッジベースの準備ができて使用可能になったら、最初にデータソースの同期を行い、その後も必要に応じて同期を行いコンテンツを最新の状態に保ちます。コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。
- CLI
-
以下は、Amazon Bedrock ナレッジベースのウェブクローラーの設定例です。
{
"webConfiguration": {
"sourceConfiguration": {
"urlConfiguration": {
"seedUrls": [{
"url": "https://www.examplesite.com"
}]
}
},
"crawlerConfiguration": {
"crawlerLimits": {
"rateLimit": 50
},
"scope": "HOST_ONLY",
"inclusionFilters": [
"https://www\.examplesite\.com/.*\.html"
],
"exclusionFilters": [
"https://www\.examplesite\.com/contact-us\.html"
]
}
},
"type": "WEB"
}