使用 Aurora PostgreSQL 作为 Amazon Bedrock 的知识库
从 Aurora PostgreSQL 15.4、14.9、13.12、12.16 版本起,您可以将 Aurora PostgreSQL 数据库集群用作 Amazon Bedrock 的知识库。有关更多信息,请参阅在 Amazon Aurora 中创建向量存储。知识库会自动获取存储在 Amazon S3 存储桶中的非结构化文本数据,将其转换为文本块和向量,然后将其存储在 PostgreSQL 数据库中。借助生成式人工智能应用程序,您可以使用 Amazon Bedrock 的代理来查询存储在知识库中的数据,并使用这些查询的结果来增强基础模型提供的答案。此工作流程称为检索增强生成(RAG)。有关 RAG 的更多信息,请参阅检索增强生成(RAG)。
先决条件
要使用 Aurora PostgreSQL 集群作为 Amazon Bedrock 的知识库,请自行熟悉以下先决条件。简而言之,您需要配置以下服务以与 Bedrock 结合使用:
使用以下版本创建的 Amazon Aurora PostgreSQL 数据库集群:
15.4 及更高版本
14.9 及更高版本
13.12 及更高版本
12.16 及更高版本
注意
您必须在目标数据库中启用
pgvector
扩展并使用版本 0.5.0 或更高版本。有关更多信息,请参阅支持 HNSW 索引的 pgvector 0.5.0 版本。 数据 API
在 Secrets Manager 中管理的用户。有关更多信息,请参阅 使用 Amazon Aurora 和 Amazon Secrets Manager 管理密码。
准备将 Aurora PostgreSQL 用作 Amazon Bedrock 的知识库
您需要按照以下步骤创建和配置 Aurora PostgreSQL 数据库集群,以将其用作 Amazon Bedrock 的知识库。
创建 Aurora PostgreSQL 数据库集群。有关更多信息,请参阅 创建 Aurora PostgreSQL 数据库集群并连接到该集群
创建 Aurora PostgreSQL 数据库集群时启用数据 API。有关支持的版本的更多信息,请参阅使用 RDS 数据 API。
记下 Aurora PostgreSQL 数据库集群的 Amazon 资源名称(ARN),以便在 Amazon Bedrock 中使用它。有关更多信息,请参阅 Amazon 资源名称(ARN)
以主用户身份登录数据库并设置 pgvector。如果未安装该扩展,请使用以下命令:
CREATE EXTENSION IF NOT EXISTS vector;
使用支持 HNSW 索引的
pgvector
0.5.0 及更高版本。有关更多信息,请参阅支持 HNSW 索引的 pgvector 0.5.0 版本。 使用以下命令检查已安装的
pg_vector
版本:postgres=>
SELECT extversion FROM pg_extension WHERE extname='vector';
创建 Bedrock 可以用来查询数据的特定架构。使用以下命令创建架构:
CREATE SCHEMA bedrock_integration;
创建 Bedrock 可用来查询数据库的新角色。使用以下命令创建新角色:
CREATE ROLE bedrock_user WITH PASSWORD
password
LOGIN;注意
记下此密码,因为您将使用这一密码创建 Secrets Manager 密码。
授予
bedrock_user
管理bedrock_integration
架构的权限,以便他们可以在其中创建表或索引。GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
以
bedrock_user
身份登录并在bedrock_integration schema
中创建表。CREATE TABLE bedrock_integration.bedrock_kb (id uuid PRIMARY KEY, embedding vector(1536), chunks text, metadata json);
我们建议您使用余弦运算符创建索引,Bedrock 可以使用该运算符来查询数据。
CREATE INDEX on bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
创建 Amazon Secrets Manager 数据库密钥。有关更多信息,请参阅 Amazon Secrets Manager 数据库密钥。
在 Bedrock 控制台中创建知识库
在准备将 Aurora PostgreSQL 用作知识库的向量存储时,请收集您需要提供给 Amazon Bedrock 控制台的以下详细信息。
Amazon Aurora 数据库集群 ARN
键 ARN
数据库名称(例如 postgres)
表名称:建议提供架构限定名称,即 CREATE TABLE bedrock_integration.bedrock_kb;这将在 bedrock_integration 架构中创建 bedrock_kb 表
表字段:
ID:(id)
文本块(chunks)
向量嵌入(embedding)
元数据(metadata)
有了这些详细信息,您就可以在 Bedrock 控制台中创建知识库。有关更多信息,请参阅在 Amazon Aurora 中创建向量存储。
将 Aurora 添加为知识库后,您就可以将数据来源摄取到知识库中。有关更多信息,请参阅 Ingest your data sources into the knowledge base。