资讯中心

  • 首页 /
  • 资讯中心 /
  • 在亚马逊 Bedrock 知识库中实现网页爬虫 机器学习博客

在亚马逊 Bedrock 知识库中实现网页爬虫 机器学习博客

2026-01-27 13:38:22

在 Amazon Bedrock 知识库中实施网页爬虫

关键要点

Amazon Bedrock 是一个完全托管的服务,提供高性能的基础模型,帮助您构建生成 AI 应用。通过将网页爬虫集成到知识库,可以高效地收集和利用公共网站的数据。设置网页爬虫时,可以选择不同的同步类型来控制要包含哪些网页。本文中将介绍如何创建知识库、测试爬虫,以及监控其进程。

Amazon Bedrock 是一项完全托管的服务,提供来自顶级人工智能公司的多种高性能基础模型FMs,包括 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon,并通过单一 API 提供广泛的功能,用于构建具有安全性、隐私和负责任的 AI 的生成 AI 应用。

通过 Amazon Bedrock,您可以根据各种用例实验和评估顶级基础模型。它允许您使用企业数据私下自定义这些模型,采用检索增强生成技术RAG,并构建执行任务的代理。这种Amazon Bedrock 知识库 可以将数据源聚合到信息库中,使您能够轻松构建利用 RAG 的应用。

访问最新和全面的信息对于许多 AI 应用至关重要,以确保数据的准确性和相关性。使用 Amazon Bedrock 知识库的客户希望扩展其爬取和索引公共网站的能力。通过将网页爬虫集成到知识库中,您可以高效地收集并利用这些网页数据。本文将探讨如何无缝实现这一点。

在亚马逊 Bedrock 知识库中实现网页爬虫 机器学习博客

知识库的网页爬虫

通过在知识库中添加网页爬虫数据源,您可以基于网站数据创建面向最终用户的生成 AI 网页应用。您可以通过 AWS 管理控制台 或 API 来完成此操作。网页连接器的默认爬取行为是通过提供的种子网址开始,然后遍历同一主域TPD的所有子链接,并具有相同或更深的 URL 路径。

当前的考虑因素包括:URL 不能要求任何身份验证,它不能是其主机的 IP 地址,并且它的协议必须以 http// 或 https// 开头。此外,网页连接器会获取爬取页面中引用的非 HTML 支持文件,例如 PDF、文本文件、Markdown 文件和 CSV 文件,只要它们未明确被排除。如果提供了多个种子网址,网页连接器将爬取符合任何种子网址的 TPD 和路径的 URL。您可以最多有 10 个源网址,知识库将以此为起点进行爬取。

然而,网页连接器默认不会横跨不同域进行页面遍历。默认行为将检索支持的非 HTML 文件,以确保爬取过程保持在指定的边界内,专注于与目标数据源的相关性。

理解同步范围

设置知识库时,您可以选择不同的同步类型,以控制包含哪些网页。以下表格显示了在不同同步范围下,给定源 URL 时将被爬取的示例路径 (https//examplecom 用于示例):

同步范围类型源网址被爬取的示例域路径描述默认https//examplecom/productshttps//examplecom/products https//examplecom/products/product1 https//examplecom/products/product https//examplecom/products/discounts与源网址相同的主机和初始路径主机仅https//examplecom/sellershttps//examplecom/ https//examplecom/products https//examplecom/sellers https//examplecom/delivery与源网址相同的主机子域https//examplecomhttps//blogexamplecom https//blogexamplecom/posts/post1 https//discoveryexamplecom https//transportexamplecom源网址主域的子域

您可以设置最大爬取速度的限速,以控制最大爬取速率。较高的值将缩短同步时间。然而,爬取任务将始终遵循域内的 robotstxt 文件如果存在,遵守标准的 robotstxt 指令,如“允许”、“禁止”,以及爬取速率。

您还可以通过使用包含和排除过滤器进一步细化爬取的 URL 范围。这些过滤器是应用于每个 URL 的正则表达式regex模式。如果 URL 匹配任何排除过滤器,则该 URL 将被忽略。反之,如果设置了包含过滤器,爬虫将仅处理至少与这些过滤器相匹配的 URL,且仍在范围内。例如,要排除以 pdf 结尾的 URL,您可以使用正则表达式 pdf。要仅包含包含 “products” 一词的 URL,您可以使用正则表达式 products。

解决方案概述

在接下来的部分中,我们将通过步骤创建一个带有网页爬虫的知识库并进行测试。我们还将展示如何创建一个特定嵌入模型以及使用Amazon OpenSearch 服务 向量集合作为向量数据库的知识库,并讨论如何监控您的网页爬虫。

先决条件

确保您有权限爬取您计划使用的 URL,并遵守 Amazon 可接受使用政策。同时确保这些 URL 不存在任何机器人检测功能。在知识库中,网页爬虫在爬取网页时使用用户代理 bedrockbot。

创建带有网页爬虫的知识库

完成以下步骤以在知识库中实施网页爬虫:

在 Amazon Bedrock 控制台中,在导航窗格中选择 知识库。选择 创建知识库。在 提供知识库详情 页面,设置以下配置:为知识库提供名称。在 IAM 权限 部分,选择 创建并使用新的服务角色。在 选择数据源 部分,选择 网页爬虫 作为数据源。选择 下一步。在 配置数据源 页面,设置以下配置:在 源网址 中,输入 https//wwwaboutamazoncom/news/amazonoffices。对于 同步范围,选择 仅主机。对于 包含模式,输入 https//wwwaboutamazoncom/news/amazonoffices/[](http//docsawsamazoncom/bedrock/latest/userguide/)。对于排除模式,输入 plants我们不希望有任何包含“plants”一词的帖子。对于 内容分块和解析,选择 默认。选择 下一步。在 选择嵌入模型并配置向量存储 页面,设置以下配置:在 嵌入模型 部分,选择 Titan Text Embeddings v2。对于 向量维数,输入 1024。对于 向量数据库,选择 快速创建新向量存储。选择 下一步。审核详细信息并选择 创建知识库。

在前述说明中,结合 包含模式 和 仅主机 同步范围用于演示包含模式在网页爬取中的使用。通过使用默认同步范围,也能实现相同的结果。

您可以在创建知识库时使用 快速创建向量存储 选项,以创建一个Amazon OpenSearch Serverless 向量搜索集合。通过此选项,系统为您设置公有向量搜索集合和向量索引,并配置必要的字段。此外,Amazon Bedrock 知识库管理端到端的数据摄取和查询工作流。

测试知识库

让我们检查如何测试知识库的步骤,数据源为网页爬虫:

在 Amazon Bedrock 控制台中,导航到您创建的知识库。在 数据源 下,选择数据源名称并选择 同步。根据您的数据大小,可能需要几分钟到数小时进行同步。当同步任务完成后,在右侧面板中,在 测试知识库 下,选择 选择模型 并选择您选择的模型。输入以下提示之一,并观察来自模型的响应:我如何参观西雅图的 Amazon 办公室?请提供一些关于亚马逊 HQ2 的信息。亚马逊的纽约办公室是什么样的?

如下面的屏幕截图所示,响应中返回的引用网页帮助您验证响应的准确性。

使用 AWS SDK 创建知识库

以下代码使用 AWS SDK for Python (Boto3) 创建一个具有特定嵌入模型和 OpenSearch 服务向量集合作为向量数据库的知识库:

pythonimport boto3

client = boto3client(bedrockagent)

response = clientcreateknowledgebase( name=workshopaossknowledgebase roleArn=yourrolearn knowledgeBaseConfiguration={ type VECTOR vectorKnowledgeBaseConfiguration { embeddingModelArn arnawsbedrockyourregionfoundationmodel/amazontitanembedtextv20 } } storageConfiguration={ type OPENSEARCHSERVERLESS opensearchServerlessConfiguration { collectionArn youropensearchcollectionarn vectorIndexName blogindex fieldMapping { vectorField documentid textField data metadataField metadata } } })

以下 Python 代码使用 Boto3 为 Amazon Bedrock 知识库创建网页爬虫数据源,指定 URL 种子、爬取限制以及包含和排除过滤器:

pythonimport boto3

client = boto3client(bedrockagent regionname=useast1)

knowledgebaseid = knowledgebaseid

response = clientcreatedatasource( knowledgeBaseId=knowledgebaseid name=example description=test description dataSourceConfiguration={ type WEB webConfiguration { sourceConfiguration { urlConfiguration { seedUrls [ {url https//examplecom/} ] } } crawlerConfiguration { crawlerLimits { rateLimit 300 } inclusionFilters [ products ] exclusionFilters [ pdf ] scope HOSTONLY } } })

监控

您可以在您的 Amazon CloudWatch 日志中跟踪正在进行的网页爬虫的状态,这将报告正在访问的 URL 以及它们是否成功被检索、跳过或失败。以下屏幕截图显示了爬取任务的 CloudWatch 日志。

清理

要清理您的资源,请完成以下步骤:

删除知识库:在 Amazon Bedrock 控制台中,选择导航窗格中的 知识库。选择您创建的知识库。注意知识库概述中的 AWS 身份和访问管理IAM服务角色名称。在 向量数据库部分 中,记下 OpenSearch Serverless 集合 ARN。选择 删除,然后输入 delete 以确认。删除向量数据库:在 OpenSearch 服务控制台中,选择导航窗格中的 集合 下的 Serverless。在搜索框中输入您保存的集合 ARN。选择该集合并选择 删除。在确认提示中输入 confirm,然后选择 删除。删除 IAM 服务角色:在 IAM 控制台中,选择导航窗格中的 角色。搜索您之前记录的角色名称。选择该角色并选择 删除。在确认提示中输入角色名称并删除该角色。

结论

在本文中,我们展示了 Amazon Bedrock 知识库现在支持网页数据源,使您能够索引公共网页。此功能使您能够有效地爬取和索引网站,从而使知识库包含来自互联网的多样且相关的信息。通过利用 Amazon Bedrock 的基础设施,您可以使用最新和全面的数据增强生成 AI 应用的准确性和有效性。

免费加速器下载安装

有关定价信息,请查看 Amazon Bedrock 定价。要开始使用 Amazon Bedrock 知识库,请参考 创建知识库。有关深入的技术内容,请参考 为您的 Amazon Bedrock 知识库爬取网页。想了解我们的构建者社区如何在其解决方案中使用 Amazon Bedrock,请访问我们的 communityaws 网站。

使用 Amazon Bedrock 自动生成产品描述 机器学习博客
使用 Amazon Bedrock 自动生成产品描述 机器学习博客
2026-01-27
如何在特定路径下强制创建角色 安全博客
如何在特定路径下强制创建角色 安全博客
2026-01-27