

# 将 S3 Vectors 与 Amazon Bedrock 知识库结合使用
<a name="s3-vectors-bedrock-kb"></a>

S3 Vectors 与 [Amazon Bedrock 知识库](https://aws.amazon.com/bedrock/knowledge-bases/)和 [Amazon SageMaker AI 融通式合作开发工作室](https://aws.amazon.com/sagemaker/unified-studio/)集成，以简化检索增强生成（RAG）应用程序的向量存储并降低其成本。

有关将 Amazon Bedrock 嵌入模型与 S3 Vectors 操作集成的高级 CLI 命令的更多信息，请参阅。

**Topics**
+ [集成概述](#s3-vectors-bedrock-kb-overview)
+ [何时使用此集成](#s3-vectors-bedrock-kb-when)
+ [支持的嵌入模型](#s3-vectors-bedrock-kb-models)
+ [先决条件和权限](#s3-vectors-bedrock-kb-prereq)
+ [使用 S3 Vectors 创建知识库](#s3-vectors-bedrock-kb-create)
+ [管理和查询知识库](#s3-vectors-bedrock-kb-manage)
+ [限制](#s3-vectors-bedrock-kb-limits)

## 集成概述
<a name="s3-vectors-bedrock-kb-overview"></a>

在 Amazon Bedrock 中创建知识库时，可以选择 S3 Vectors 作为向量存储。此集成提供以下内容：
+ 对于使用大型向量数据集的 RAG 应用程序，可**节省成本**。
+ 与 Amazon Bedrock 的完全托管式 RAG 工作流程**无缝集成**。
+ 由 Amazon Bedrock 服务处理的**自动向量管理**。
+ 对于知识库检索操作，**冷查询延迟为亚秒级，热查询延迟低至 100 毫秒**。

Amazon Bedrock 知识库提供了完全托管式的端到端 RAG 工作流程。使用 S3 Vectors 创建知识库时，Amazon Bedrock 自动从 S3 数据来源获取数据，将内容转换为文本块，生成嵌入，并将其存储在向量索引中。然后，可以查询知识库，并根据从源数据中检索的分块生成响应。

## 何时使用此集成
<a name="s3-vectors-bedrock-kb-when"></a>

当需要以下各项时，可考虑将 S3 Vectors 与 Amazon Bedrock 知识库结合使用：
+ **经济高效的向量存储**，适用于亚秒级查询延迟可满足应用程序要求的大型数据集。
+ **基于文本和图像的文档检索**，适用于搜索手册、策略和可视化内容等使用案例。
+ **RAG 应用程序**，优先考虑存储成本优化而不是超低延迟响应。
+ **托管式向量操作**，而无需直接学习 S3 Vectors API 操作：可以继续使用熟悉的 Amazon Bedrock 界面。
+ **长期向量存储**，具有 Amazon S3 的耐久性和可扩展性

这种集成非常适合于要构建 RAG 应用程序的组织，这些应用程序需要搜索写入的内容和图像并从中提取见解，其中 S3 Vectors 的成本优势与可接受的查询性能要求相一致。

## 支持的嵌入模型
<a name="s3-vectors-bedrock-kb-models"></a>

请参阅《Amazon Bedrock 用户指南》**中的[向量嵌入支持的模型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-supported.html#knowledge-base-supported-embeddings)。

## 先决条件和权限
<a name="s3-vectors-bedrock-kb-prereq"></a>

在使用 S3 Vectors 创建知识库之前，请确保您具备以下各项：
+ 适用于 S3 Vectors 和 Amazon Bedrock 服务的相应 IAM 权限。有关适用于 S3 Vectors 的 IAM 权限的更多信息，请参阅 [S3 Vectors 中的身份和访问权限管理](s3-vectors-access-management.md)。有关 Amazon Bedrock 知识库服务角色访问 S3 Vectors 的 IAM 权限的更多信息，请参阅《Amazon Bedrock User Guide》**中的 [Permissions to access your vector store in Amazon S3 Vectors](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-s3vectors)。
+ 准备好纳入知识库的源文档。
+ 了解嵌入模型要求。

设置安全配置时，可以选择一个 IAM 角色，该角色可为 Amazon Bedrock 提供访问所需 AWS 服务的权限。可以让 Amazon Bedrock 创建服务角色，也可以使用您自己的自定义角色。如果使用自定义角色，请配置向量存储桶策略，该策略将向量存储桶和向量索引的访问权限限制为该自定义角色。

有关所需权限和 IAM 角色的详细信息，请参阅《Amazon Bedrock User Guide》**中的 [Create a service role for Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。服务角色还必须具有对 S3 Vectors 和 AWS KMS API 操作的权限。

## 使用 S3 Vectors 创建知识库
<a name="s3-vectors-bedrock-kb-create"></a>

可以通过两种方法创建使用 S3 Vectors 的知识库。

### 方法一：使用 Amazon Bedrock 控制台
<a name="s3-vectors-bedrock-kb-create-console"></a>

在 Amazon Bedrock 控制台中创建知识库时，可以选择“S3 向量存储桶”作为向量存储选项。您有两个设置选项：
+ **快速创建新的向量存储**：Amazon Bedrock 创建 S3 向量存储桶和向量索引，并使用所需的设置对它们进行配置。默认情况下，向量存储桶使用具有 Amazon S3 托管式密钥的服务器端加密（SSE-S3）进行加密。可以选择使用 AWS KMS 对存储桶进行加密。有关在控制台中**快速创建新的向量存储**的更多信息，请参阅《Amazon Bedrock User Guide》**中的 [Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html)。
+ **选择您创建的向量存储**：从您的账户中选择您之前创建的现有 S3 向量存储桶和向量索引。有关在 Amazon Bedrock 知识库控制台中创建 S3 向量存储桶和向量索引的更多信息，请参阅《Amazon Bedrock User Guide》**的 [Prerequisites for using a vector store you created for a knowledge base](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html) 中的“S3 Vectors”选项卡。

有关详细的分步说明，请参阅《Amazon Bedrock User Guide》**中的 [Create a knowledge base by connecting to a data source in Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html)。

### 方法二：使用 Amazon SageMaker 融通式合作开发工作室
<a name="s3-vectors-bedrock-kb-create-studio"></a>

还可以通过 [Amazon SageMaker AI 融通式合作开发工作室](https://aws.amazon.com/sagemaker/unified-studio/)中的 Amazon Bedrock 使用 S3 Vectors 来创建和管理知识库。这为构建和测试使用知识库的人工智能应用程序提供了统一的开发环境。

[SageMaker AI 融通式合作开发工作室中的 Amazon Bedrock](https://aws.amazon.com/bedrock/unifiedstudio/) 专为需要集成的笔记本功能和使用多种 AWS 机器学习和分析服务的用户而设计。在构建生成式人工智能应用程序时，可以快速创建 S3 向量存储桶并将其配置为知识库的向量存储。

有关将 S3 Vectors 与 SageMaker AI 融通式合作开发工作室中的 Amazon Bedrock 结合使用的信息，请参阅《SageMaker AI Unified Studio User Guide》**中的 [Add a data source to your Amazon Bedrock app](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/data-sources.html)。

## 管理和查询知识库
<a name="s3-vectors-bedrock-kb-manage"></a>

### 数据同步和管理
<a name="s3-vectors-bedrock-kb-manage-sync"></a>

Amazon Bedrock 知识库提供摄取作业操作，以使数据来源和向量嵌入保持同步。同步数据来源时，Amazon Bedrock 扫描每个文档，并验证是否已将其编入向量存储的索引中。也可以使用 [IngestKnowledgeBaseDocuments](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_IngestKnowledgeBaseDocuments.html) 操作将文档直接编入向量存储的索引中。最佳实践是为每个知识库创建单独的向量存储，以确保数据同步。

删除知识库或数据来源资源时，Amazon Bedrock 提供两种数据删除策略：`Delete`（默认）和 `Retain`。如果选择 `Delete` 策略，则会自动删除向量索引和向量存储桶中的向量。

### 查询和检索
<a name="s3-vectors-bedrock-kb-manage-query"></a>

设置知识库后，可以执行以下操作：
+ 使用 [Retrieve](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) API 操作从源数据中**检索分块**。
+ 使用 [RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) API 操作根据检索到的分块**生成响应**。
+ 直接在 Amazon Bedrock 控制台中**测试查询**。

返回的响应中附有对原始源数据的引用。

## 限制
<a name="s3-vectors-bedrock-kb-limits"></a>

将 S3 Vectors 与 Amazon Bedrock 知识库结合使用时，应了解以下限制：
+ **仅限语义搜索**：S3 Vectors 支持语义搜索，但不支持混合搜索功能。
+ **S3 Vectors 大小限制**：每个向量都有总元数据大小限制和可筛选元数据的大小限制，这可能会限制自定义元数据和筛选选项。使用 S3 Vectors 作为与 Amazon Bedrock 知识库配合使用的向量存储时，您可以为每个向量附加最多 1 KB 的自定义元数据和 35 个元数据键。
+ **分块策略限制**：在 Amazon Bedrock 知识库中使用极高的令牌数量并采用分层分块时，您可能会超出最大元数据大小限制，因为父子分块关系和分层上下文会作为不可筛选的元数据存储在 S3 Vectors 中。有关每个向量的元数据大小限制的更多信息，请参阅[限制和局限性](s3-vectors-limitations.md)。
+ **仅限浮点向量**：不支持二进制向量嵌入。

有关使用 Amazon Bedrock 知识库的全面指导，请参《Amazon Bedrock User Guide》**中的 [Retrieve data and generate AI responses with Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html)。