本笔记本提供了构建空白 OpenSearch Serverless (OSS) 索引、Amazon Bedrock 知识库和将文档摄入索引的示例代码。
一个数据管道,将文档(通常存储在 Amazon S3 中)摄入到知识库中,即向量数据库(如 Amazon OpenSearch Service Serverless (AOSS)),以便在收到问题时可以进行查找。
一旦数据可用于 Bedrock 知识库,就可以使用 Amazon Bedrock 提供的知识库 API 在同一文件夹中的以下笔记本中构建问答应用程序。
此笔记本需要权限:
如果在 SageMaker Studio 上运行,我们应该将以下托管策略添加到我们的角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "aoss:*",
"Resource": "*"
}
]
}
在运行本笔记本的其余部分之前,我们需要运行下面的单元格来(确保安装必要的库并)连接到 Bedrock。
首先,我们必须创建一个向量存储。在本节中,我们将使用 Amazon OpenSerach 无服务器。
Amazon OpenSearch Serverless 是 Amazon OpenSearch Service 中的一个无服务器选项。作为开发人员,我们可以使用 OpenSearch Serverless 运行 petabyte 级别的工作负载,而无需配置、管理和扩展 OpenSearch 集群。我们可以获得与 OpenSearch Service 相同的交互式毫秒响应时间,同时享受无服务器环境的简单性。根据我们的应用程序需求自动扩展资源,提供正确的容量,而不会影响数据摄取。
步骤:
chunkingStrategyConfiguration
中提到的块大小的块。一旦创建了 KB 和数据源,我们就可以启动摄入作业。 在摄入作业期间,KB 将获取数据源中的文档,对其进行预处理以提取文本,根据提供的分块大小对其进行分块,为每个块创建嵌入,然后将其写入向量数据库,在本例中为 OSS。
在幕后,RetrieveAndGenerate API 将查询转换为嵌入,搜索知识库,然后使用搜索结果作为上下文信息来增强基础模型提示,并返回 FM 生成的响应。对于多轮对话,知识库管理对话的短期记忆,以提供更多上下文结果。
RetrieveAndGenerate API 的输出包括生成的响应、来源归属以及检索到的文本块。
检索 API 将用户查询转换为嵌入,搜索知识库,并返回相关结果,让我们可以在语义搜索结果的基础上构建自定义工作流。检索 API 的输出包括检索到的文本块、源数据的位置类型和 URI,以及检索结果的相关性分数。