使用 SQL 集成 Amazon Aurora MySQL 和 Amazon Bedrock 数据库
  • 12

集成Amazon Aurora MySQL和Amazon Bedrock的SQL方法

关键要点

在企业中,大量数据存储在关系型数据库中,因此利用生成性人工智能AI基础模型来增强数据集,以改善用户体验,显得尤为重要。本文将介绍如何通过 Amazon Aurora MySQL 兼容版 集成生成性AI模型,并通过 Amazon Aurora Machine Learning 展示两个使用案例:

服务改进:通过Amazon Bedrock 获取补充信息,并将其存储在Aurora数据库中以便实时访问。提高生产力:利用Amazon Bedrock 对存储在Aurora数据库中的长文本进行摘要。

如需了解在Amazon Aurora MySQL中使用机器学习的其他方法,请参考 利用Amazon Aurora和Amazon SageMaker JumpStart构建生成性AI驱动的代理助手应用程序。

解决方案概览

生成性AI 是一种能够生成新内容和创意的AI,包括对话、故事、图像、视频和音乐。

基础模型FMs是针对广泛的通用和无标签数据训练的机器学习ML模型,能够执行多种一般性任务。 大型语言模型LLMs是基础模型的一类,专注于语言相关的任务,如摘要、文本生成、分类、开放式对话和信息提取。

本解决方案基于以下关键组件:

Amazon Aurora Amazon Aurora 是一种云构建的关系数据库管理系统RDBMS,兼容MySQL和PostgreSQL。 Aurora 提供商用级数据库的性能和可用性,成本仅为十分之一。Aurora ML 允许您使用熟悉的SQL编程语言调用多种ML算法,包括预测、生成性AI和情感分析。使用Aurora ML不需要前期机器学习经验,Aurora ML 提供简洁、安全的集成方式,无需构建自定义集成或移动数据。Aurora 会调用 Amazon SageMaker、 Amazon Comprehend 进行 情感分析 和 Amazon Bedrock 模型,这样您的应用程序就无需直接调用这些服务。

Amazon Bedrock Amazon Bedrock 是一个全托管的服务,提供来自AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon 等领先AI公司的高性能基础模型,通过一个API提供。它为构建具有安全性、隐私保护和负责任AI的生成性AI应用程序提供了一整套功能。Amazon Bedrock 提供了构建和扩展生成性AI应用的简便方式。由于Amazon Bedrock是无服务器的,您无需管理任何基础设施,可以使用您已经熟悉的AWS服务,将生成性AI功能安全集成和部署到您的应用程序中。

以下图表展示了使用ML和Amazon Aurora MySQL的示例:

在以下部分中,我们将展示如何通过来自Amazon Aurora MySQL的SQL查询实时调用Amazon Bedrock。高层次的步骤如下:

创建新集群。创建数据库和数据库用户。为Aurora集群创建AWS身份与访问管理IAM角色和策略。将IAM角色分配给Aurora集群。启用Amazon Bedrock基本模型并使用Aurora ML。创建访问Amazon Bedrock的函数。

前提条件

本文假设您对 AWS管理控制台 的导航有所了解。为了完成本解决方案,您需要确保在AWS账户中启用以下资源和服务:

需使用Amazon Aurora MySQL 3060或更高版本来使用Amazon Bedrock集成。Aurora MySQL集群必须使用自定义DB集群参数组。需要IAM访问权限来创建角色和权限。您必须有权访问Amazon Bedrock中的特定基础模型。 本文使用Amazon Titan Text G1 Express (amazontitantextexpressv1) 和Anthropic Claude 3 Haiku (anthropicclaude3haiku20240307v10)。ML服务必须在您Aurora MySQL集群的同一个 AWS区域 中运行。您的Aurora MySQL集群的 网络配置 必须允许到Amazon Bedrock端点的外部连接。

创建Aurora MySQL集群

第一步是创建Aurora MySQL集群。有关具体步骤说明,请参考 创建和连接Aurora MySQL数据库集群 和 使用Amazon Aurora机器学习与Aurora MySQL。我们将在此突出几个特定的配置选项:

在Aurora控制台中,选择在支持 Amazon Bedrock 的区域创建新集群例如,useast1。在引擎选项中,选择 AuroraMySQL兼容。 在引擎版本中,我们使用 Aurora MySQL 3060以便于集成Amazon Bedrock。在配置选项中,选择 Aurora标准 或Aurora I/O优化。对于DB 实例类,选择您的实例类。对于Amazon Bedrock,您需要稍后修改参数组,因此此时应应用自定义DB集群参数组 。

创建您的Aurora集群。在集群创建后,您需要运行一系列SQL命令以准备集群与Amazon Bedrock的集成。

使用具有rdssuperuserrole权限的用户例如,通过 MySQL命令行客户端 作为主用户登录Aurora集群,然后运行以下代码。要使用Amazon Bedrock ML功能,必须将 AWSBEDROCKACCESS 数据库角色授予该用户。

sqlmysqlgt create database bedrockdb / 示例数据库 /Query OK 1 row affected (003 sec)

mysqlgt create user bedrockuser@ identified by password / 示例用户 /Query OK 0 rows affected (030 sec)

mysqlgt GRANT SELECT INSERT UPDATE DELETE CREATE DROP ALTER INDEX CREATE ROUTINE ALTER ROUTINE EXECUTE ON bedrockdb TO bedrockuser@Query OK 0 rows affected (005 sec)

mysqlgt GRANT AWSBEDROCKACCESS TO bedrockuser@Query OK 0 rows affected (001 sec)

mysqlgt SHOW GRANTS FOR bedrockuser@G 1 row Grants for bedrockuser@ GRANT USAGE ON TO bedrockuser@ 2 row Grants for bedrockuser@ GRANT SELECT INSERT UPDATE DELETE CREATE DROP INDEX ALTER EXECUTE CREATE ROUTINE ALTER ROUTINE ON bedrockdb TO bedrockuser@ 3 row Grants for bedrockuser@ GRANT AWSBEDROCKACCESS@ TO bedrockuser@

您的数据库用户现在已设置为与Amazon Bedrock集成。接下来,您可以创建一个IAM角色,以便Aurora MySQL DB集群访问Amazon Bedrock。

为Aurora集群创建IAM角色和策略

要允许Aurora ML与Amazon Bedrock协同工作,您需要首先创建允许Aurora集群与Amazon Bedrock模型通讯的IAM策略。完成以下步骤:

风驰加速器下载进入IAM控制台,在导航窗格中选择策略。选择创建策略。

在指定权限页面,选择选择服务,选择Bedrock。

在策略编辑器中,展开Bedrock,在读取下,选择 InvokeModel 以允许该动作。

对于资源,选择全部或特定。作为最佳实践,确保仅授予您团队所需的对Amazon Bedrock模型的访问权限。

选择下一步。

在策略名称中,输入您策略的名称,例如 AuroraBedrockInvokeModel。

选择创建策略。

在IAM控制台中,选择导航窗格中的角色。

选择创建角色。对于受信任的实体类型,选择AWS服务。对于服务或用例,选择RDS。选择 RDS 添加角色到数据库。选择下一步。

现在,将在上一步中创建的IAM策略分配给此IAM角色。

对于权限策略,找到并选择 AuroraBedrockInvokeModel 策略。

选择下一步。

在角色详细信息部分,输入一个名称在本文中,命名为 AuroraBedrockRole和描述。

检查IAM角色并确认 AuroraBedrockInvokeModel 策略已附加。选择创建以创建角色。

将IAM角色分配给Aurora集群

现在需要将 AuroraBedrockRole IAM角色分配给Amazon Aurora MySQL集群。完成以下步骤:

在Amazon RDS控制台中,导航到您的Aurora MySQL集群详情页面。在连接和安全性标签下,找到 管理IAM角色 部分。选择添加到此集群的IAM角色,选择 AuroraBedrockRole 角色。

选择 添加角色。

将此IAM角色的ARN添加到与Aurora MySQL集群关联的自定义DB集群参数组的 awsdefaultbedrockrole 参数中。

使用 SQL 集成 Amazon Aurora MySQL 和 Amazon Bedrock 数据库

选择 保存更改 以保存设置。

您可以通过AWS管理控制台或AWS命令行界面AWS CLI确认这些参数。您还可以使用MySQL客户端工具检查,如以下示例所示:

sqlmysqlgt show global variables like awsdefault Variablename Value awsdefaultbedrockrole arnawsiam012345678910role/AuroraBedrockRole awsdefaultcomprehendrole awsdefaultlambdarole awsdefaults3role awsdefaultsagemakerrole 5 rows in set (003 sec)

现在您的集群可以调用Amazon Bedrock中的模型。

使用Aurora ML

Aurora ML 是Aurora的一项功能,使构建者可以直接使用SQL命令与AWS机器学习服务协同工作,包括Amazon Bedrock、SageMaker和Amazon Comprehend。

您可以使用AWS CLI列出Amazon Bedrock中的基础模型:

sh aws bedrock listfoundationmodels query [][modelNamemodelId] out table

ListFoundationModels Titan Text Large amazontitantg1large Titan Image Generator G1 amazontitanimagegeneratorv10 Titan Image Generator G1 amazontitanimagegeneratorv1 Titan Text Embeddings v2 amazontitanembedg1text02 Titan Text G1 Lite amazontitantextlitev104k Titan Text G1 Lite amazontitantextlitev1 Claude anthropicclaudev21200k Claude anthropicclaudev21 Claude anthropicclaudev2 Claude 3 Sonnet anthropicclaude3sonnet20240229v10 Claude 3 Haiku anthropicclaude3haiku20240307v10

在使用基础模型之前,请确保目标模型在 Amazon Bedrock控制台 中已启用。如果未启用,请 添加模型访问权限 到目标模型。

您现在可以创建允许您直接从Aurora访问Amazon Bedrock的函数。以下示例展示了如何使用 Amazon Titan Text G1 Express 和Anthropic Claude 3 Haiku模型生成函数,这两个模型均支持文本TEXT模式。如果您想要使用不同的模型ID,请参阅 基础模型ID 获取模型ID,并参考 [Amazon Bedrock中支持的基础模型](https//docsaws