在您的生成式人工智能应用中使用网页搜索 API 和 Amazon Bedrock 代理集成动态网页内

2026-01-27 13:41:32 35

在生成型 AI 应用中集成动态网页内容

关键要点

功能增强:通过将 Amazon Bedrock Agent 与网页搜索 API 集成,提升聊天机器人实时搜索和动态信息检索能力。简化操作:开发者可借助 Amazon Bedrock Agents 快速构建自主代理,打破复杂的技术壁垒。用户体验优化:通过上下文相关的响应及增强的信息提取,提升用户与聊天机器人的交互质量。

Amazon Bedrock Agents 提供开发者在其应用中构建和配置自主代理的能力。这些代理帮助用户根据组织数据和用户输入完成操作,协调基础模型、数据源、软件应用和用户对话之间的交互。

Amazon Bedrock 代理利用大型语言模型LLMs的强大能力来执行复杂推理和动作生成。这种方法受ReAct推理与行动范式的启发,结合了推理轨迹和任务特定的动作。

Amazon Bedrock 代理利用 LLM 分解任务,动态与用户互动,通过 API 调用执行动作,并利用 Amazon Bedrock 知识库 增强知识。ReAct 方法使代理能够生成推理轨迹和动作,同时通过动作组无缝集成公司系统。通过加速开发、简化基础架构、提升通过 思维链CoT提示 的功能以及提高准确性,Amazon Bedrock Agents 使开发者能够快速构建复杂的 AI 解决方案,这些解决方案将 LLM 的能力与自定义动作和知识库相结合,而无需管理底层复杂性。

网页搜索 API 使开发者能够无缝集成强大的搜索功能到他们的应用中,仅需几行代码即可访问大量网络数据。这些 API 作为强大搜索引擎的入口,允许应用程序以编程方式查询网络并检索相关结果,包括网页、图片、新闻文章等。

迅猛兔加速器官网入口

通过使用网页搜索 API,开发者可以使其应用获得来自全球互联网的实时信息,启用内容发现、趋势分析和智能推荐等功能。网页搜索 API 提供可定制的参数用于优化搜索和结构化响应格式以便解析,是发掘互联网上丰富信息的灵活高效解决方案。

Amazon Bedrock Agents 为增强聊天机器人提供了强大的解决方案,当与网页搜索 API 结合时,它们解决了一个重要的客户痛点。在本文中,我们展示如何使用 Amazon Bedrock Agents 和网页搜索 API 在您的生成型 AI 应用中集成动态网页内容。

集成网页搜索 API 与 Amazon Bedrock Agents 的好处

让我们探讨这种集成如何革新您的聊天机器人体验:

功能描述无缝的聊天中网页搜索通过将网页搜索 API 集成到 Amazon Bedrock 代理中,您可以使聊天机器人在不离开聊天界面的情况下执行实时网页搜索。这使用户保持在您的应用内,改善了整体用户体验和留存率。动态信息检索Amazon Bedrock 代理可以使用网页搜索 API 获取最新信息,确保聊天机器人提供最相关的响应,增强其实用性和用户信任。上下文相关的响应Amazon Bedrock 代理使用 CoT 提示,使 FMs 能够动态计划和执行操作。通过这一方法,代理可以分析用户查询并决定何时需要网页搜索,或者在启用的情况下从用户那里收集更多信息以完成任务。增强问题解决能力通过集成网页搜索 API,您的 Amazon Bedrock 代理可以解决更广泛的用户查询。不论是解决技术问题还是提供行业见解,您的聊天机器人都会成为更灵活有价值的资源。最低设置,最大影响Amazon Bedrock 代理简化了将网页搜索功能添加到聊天机器人的过程。仅需几步配置,您就可以大幅扩展聊天机器人的知识库和能力,同时保持简洁的用户界面。基础设施即代码您可以使用 AWS CloudFormation 或 AWS Cloud Development Kit 部署和管理 Amazon Bedrock 代理。

凭借解决用户扩展聊天机器人功能的挑战而不复杂化用户体验,网页搜索 API 和 Amazon Bedrock 代理的组合提供了一个引人注目的解决方案。这种集成使企业能够创建更具能力、信息丰富且用户友好的聊天机器人,让用户在一个界面内保持参与和满意。

解决方案概述

该解决方案使用 Amazon Bedrock Agents 与网页搜索功能集成外部搜索 API如 SerpAPI 和 Tavily AI。架构包含以下关键组件:

一个 Amazon Bedrock 代理协调用户和搜索 API 之间的交互,处理聊天会话和选择性长期记忆。一个 AWS Lambda 函数实现调用外部搜索 API 的逻辑并处理结果。外部搜索 API SerpAPI 和 Tavily AI提供网页搜索能力。Amazon Bedrock FMs 根据搜索结果生成自然语言响应。AWS Secrets Manager 安全存储外部服务的 API 密钥。

解决方案流程如下:

用户输入由 Amazon Bedrock 代理接收,由 Anthropic Claude 3 Sonnet 提供支持。代理确定是否需要网页搜索,或返回给用户澄清问题。如果需要,代理调用两个 Lambda 函数之一以执行网页搜索:SerpAPI 用于最新事件,Tavily AI 用于重研究问题。Lambda 函数从 Secrets Manager 安全提取 API 秘密,调用适当的搜索 API 并处理结果。代理根据搜索结果生成最终响应。在应用最终输出保护后,将响应返回给用户。

以下图形是我们将要实施的系统的可视化表示。

我们展示了两种方法来构建此解决方案。要在 AWS 管理控制台 上设置代理,我们使用新的代理构建器。以下 GitHub 仓库 包含部署相同示例的 Python AWS CDK 代码。

先决条件

确保您具备以下先决条件:

一个有效的 AWS 账户。Amazon Bedrock 代理的先决条件。Amazon Bedrock 代理当前仅在特定 AWS 区域可用。请查看 最新支持区域列表,并确保您在其中工作。

Amazon Bedrock 代理支持 Amazon Titan Text 和 Anthropic Claude 模型。每个模型具有不同的功能和定价。有关支持模型的完整列表,请参阅 Amazon Bedrock Agents 的支持区域和模型。

在本文中,我们使用 Anthropic Claude 3 Sonnet 模型。

配置网页搜索 API

SERPER (SerpAPI) 和 Tavily AI 都提供可以通过从 Lambda 函数调用其基于 REST 的 API 端点与 Amazon Bedrock 代理集成的网页搜索 API。然而,它们在一些关键方面存在差异,这可能影响何时使用每个 API:

SerpAPI 提供对多个搜索引擎的访问,包括谷歌、必应、雅虎等,提供细致的搜索参数和结果类型控制例如,主动结果、特色片段、图片和视频。当您需要来自多个搜索引擎的结果或特定搜索引擎功能的任务时,SerpAPI可能更适合。Tavily AI 专为 AI 代理和 LLM 设计,重点提供相关和事实准确的结果。它提供诸如在搜索结果中包含答案、原始内容和图片等功能,并提供自定义选项,例如搜索深度基础或高级以及包括或排除特定域的能力。它在提供实时结果的速度和效率方面进行了优化。

如果您需要来自特定搜索引擎或多个引擎的结果,则使用 SerpAPI,若关注相关性和事实准确性,则使用 Tavily AI。

最终,在 SerpAPI 和 Tavily AI 之间的选择取决于您的具体研究需求、对搜索参数控制的需求以及是优先考虑通用搜索引擎能力还是 AI 优化的结果。

在本例中,我们选择同时使用它们,让代理根据问题或提示判断哪个 API 更合适。代理还可以选择在一个无法提供足够好答案时调用两个。SerpAPI 和 Tavily AI 都提供可以用于此示例的免费层。

对于这两个 API,均需 API 密钥,可从 Serper 和 Tavily 获取。

我们将获取到的 API 密钥安全存储在 Secrets Manager 中。以下示例创建 API 密钥的秘密:

bashaws secretsmanager createsecret name SERPERAPIKEY description Serper 的 API 秘密密钥。 secretstring SERPERAPIKEY

aws secretsmanager createsecret name TAVILYAPIKEY description Tavily AI 的 API 秘密密钥。 secretstring TAVILYAPIKEY

在 shell 中输入命令时,存在命令历史被访问或工具具有访问您命令参数的风险。有关详细信息,请参阅 减轻使用 AWS CLI 存储 AWS Secrets Manager 秘密的风险。

现在 APIs 已配置,您可以开始构建网页搜索 Amazon Bedrock 代理。

在以下部分,我们提供两种创建代理的方法:通过控制台和使用 AWS CDK。尽管控制台路径提供了更直观的方法,但我们强烈建议使用 AWS CDK 来部署代理。该方法不仅提供了更稳健的部署过程,还允许您检查底层代码。让我们探讨这两种选择,以帮助您选择最适合您需求的方法。

通过控制台构建网页搜索 Amazon Bedrock 代理

在第一个示例中,您将使用 Amazon Bedrock 控制台创建并配置网页搜索代理,然后使用 Lambda 控制台配置和部署 Lambda 函数。

创建网页搜索代理

要使用控制台创建网页搜索代理,请完成以下步骤:

在 Amazon Bedrock 控制台中,选择导航窗格中的 代理。选择 创建代理。输入代理名称如 websearchagent和可选描述,然后选择 创建。

您现在处于新的代理构建器中,可以访问并编辑代理的配置。

对于 代理资源角色,保持默认选择 创建并使用新的服务角色。

此选项会自动创建代理所需的 AWS 身份和访问管理 IAM角色。

对于模型,选择 Anthropic 和 Claude 3 Sonnet。

对于 代理指令,提供清晰具体的指令,以告知代理应执行的操作。对于网页搜索代理,输入:

text您是一个能够处理以下任务的代理:1/ 帮助用户进行研究并查找最新信息。对于最新信息,请始终使用网页搜索。网页搜索有两种模式:a/ Google 搜索 适合查找最新信息和当前事件b/ Tavily AI 搜索 用于深入研究用户感兴趣的主题。不适合用于新闻,因为它不会按日期排序搜索结果。

正如您从说明中看到的,我们决定将 SerpAPI 选项命名为 Google 搜索。在我们对 Anthropic Claude 3 Sonnet 模型的测试中,Google 搜索通常表示网页搜索。由于指令是对模型的自然语言说明,我们希望尽量使用该语言中使用的词语,因此使用 Google 搜索而非 SerpAPI。然而,这可能因模型而异。我们鼓励您在更改模型时测试新的指示。

在 动作组 中选择 添加。

动作组允许代理与外部系统或 API 交互,以获取更多信息或执行动作。

在 输入动作组名称 中,输入 actiongroupwebsearch 作为动作组名称。在 动作组类型 中,选择 使用功能详细信息定义,以便您可以按 JSON 指定功能及其参数,而不是提供 Open API 架构。对于 动作组调用,设置代理在识别此动作组后所执行的操作。因为我们要调用网页搜索 API,所以选择 快速创建新 Lambda 函数。

通过此选项,Amazon Bedrock 会为您的代理创建基本 Lambda 函数,然后您可以在 Lambda 控制台上根据调用网页搜索 API 的用例进行修改。代理会预测所需的功能和参数,并将其传递给 Lambda 函数。

现在,配置动作组的两个函数一个用于 SerpAPI Google 搜索,另一个用于 Tavily AI 搜索。对于这两个函数的 参数,添加 searchquery 及其描述。

这是类型为 字符串 的必需参数。

选择 创建 以完成动作组的创建。

我们使用以下参数描述:

text“Google 网页搜索的搜索查询。”“ Tavily 网络搜索的搜索查询。”

在您的生成式人工智能应用中使用网页搜索 API 和 Amazon Bedrock 代理集成动态网页内

我们鼓励您尝试将目标网站添加为动作组函数的额外参数。查看 Lambda 函数代码并推断设置。

您将被重定向到代理构建器控制台。

选择 保存 以保存您的代理配置。

配置并部署 Lambda 函数

完成以下步骤以更新动作组 Lambda 函数:

在 Lambda 控制台中,找到名为 actiongroupwebsearch 的新 Lambda 函数。编辑提供的启动代码并实现网页搜索用例:

pythonimport httpclientimport json def lambdahandler(event ) actiongroup = event[actionGroup] function = event[function] parameters = eventget(parameters []) searchquery targetwebsite = extractsearchparams(actiongroup function parameters) searchresults str = if function == tavilyaisearch searchresults = tavilyaisearch(searchquery targetwebsite) elif function == googlesearch searchresults = googlesearch(searchquery targetwebsite) # 准备响应 functionresponsebody = {TEXT {body f这是关于查询 {searchquery} 的顶级搜索结果:{searchresults} }} actionresponse = { actionGroup actiongroup function function functionResponse {responseBody functionresponsebody} } response = {response actionresponse messageVersion event[messageVersion]} return response

为简洁起见,代码已缩略。完整代码可在 GitHub 获取。

选择 部署。

该函数配置有资源基础策略,允许 Amazon Bedrock 调用该函数。因此,您无需更新代理所使用的 IAM 角色。

作为之前选择的 快速创建新 Lambda 函数 选项的一部分,代理构建器已将该函数配置为允许 Amazon Bedrock 服务主体调用该功能。无需更新代理使用的 IAM 角色。不过,该函数需要访问存储在 Secrets Manager 中的 API 密钥的权限。

在功能详细信息页面中,选择 配置 选项卡,然后选择 权限 。选择 角色名称 的链接以在 IAM 控制台上打开该角色。

![执行角色](https//d2908q01vomqb2cloudfrontnet/f1f836cb4ea6efb2a0b1b99f41