本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Neptune Analytics 分析数据库引擎图表创建 Amazon Bedrock 知识库
GraphRAG 已完全集成到 Amazon Bedrock 知识库中,并使用 Amazon Neptune Analytics 分析数据库引擎进行图形和向量存储。您可以通过 AWS 管理控制台、AWS CLI 或 AWS SDK 开始在知识库中使用 GraphRAG。
您不需要任何现有的图形基础设施即可开始使用 GraphRAG。Amazon Bedrock 知识库会自动管理对 Amazon Neptune 图表的创建和维护操作。系统将从您上传到 Amazon S3 存储桶的文档中提取实体、事实和关系,用来自动创建和更新图表。因此,您无需先掌握任何图表建模知识即可向最终用户提供相关的响应。图表将存储在 Amazon Neptune Analytics 分析数据库引擎中。
创建知识库时,您需要设置或指定以下内容:
您无法以根用户身份创建知识库。在开始这些步骤之前,请使用 IAM 用户登录。
以下内容显示如何创建知识库,以便通过控制台和 CLI 使用 Neptune GraphRAG。
- Console
-
通过控制台创建 Neptune Analytics 分析数据库引擎知识库
-
采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后,通过以下网址打开 Amazon Bedrock 控制台:https://console.aws.amazon.com/bedrock。
-
在左侧导航窗格中,选择知识库。
-
在知识库部分中,选择创建,然后选择带有向量存储的知识库。
-
(可选)在知识库详细信息下方,更改默认名称并为知识库提供描述。
-
在 IAM 权限下,选择一个能够向 Amazon Bedrock 授予对其他所需 AWS 服务的访问权限的 IAM 角色。您可以让 Amazon Bedrock 创建服务角色,也可以选择您已为 Neptune Analytics 分析数据库引擎创建的自定义角色。有关示例,请参阅在 Amazon Neptune Analytics 分析数据库引擎中访问向量数据库的权限。
-
请务必选择 Amazon S3 作为数据来源,然后选择下一步来配置您的数据来源。
-
提供文件的 S3 URI,该文件将用作您的数据来源,数据来源将与知识库连接并与 Amazon Neptune Analytics 分析数据库引擎集成。有关您可以提供的其他步骤和可选信息,请参阅将数据来源连接到知识库。
-
在嵌入模型部分,选择嵌入模型以将数据转换为向量嵌入。或者,您可以使用其他配置部分来指定向量维度。对于嵌入类型,建议使用浮点向量嵌入。
嵌入模型的向量维度,必须与您在创建 Neptune Analytics 分析数据库引擎图表时指定的向量维度相匹配。
-
在向量数据库部分,选择创建向量存储的方法,然后选择 Amazon Neptune Analytics 分析数据库引擎(GraphRAG)作为向量存储,以存储将用于查询的嵌入内容。要创建向量存储,您可以使用下列任一方法:
-
建议您使用快速创建新的向量存储方法来快速开始创建向量存储。选择 Amazon Neptune Analytics 分析数据库引擎(GraphRAG)作为您的向量存储。此选项不需要您拥有任何现有的 Neptune Analytics 分析数据库引擎资源。知识库会自动生成文档嵌入并存储在 Amazon Neptune 中,包括从文档语料库中派生的实体及其关系的图表表示。
-
或者,如果您已经创建了 Neptune Analytics 分析数据库引擎图表和向量索引,则可以使用选择已创建的向量存储选项。选择 Amazon Neptune Analytics 分析数据库引擎(GraphRAG)作为您的向量存储,并在向量索引中识别图形 ARN、向量字段名称和元数据字段名称。有关更多信息,请参阅 将您创建的向量存储用于知识库的先决条件。
-
选择下一步并查看知识库的详细信息。在继续创建知识库之前,您可以编辑任何部分。
创建知识库所用的时间取决于您的特定配置。知识库创建完成后,知识库的状态将更改为“已就绪”或“可用”。
知识库准备就绪并可供使用后,您可以首次同步数据来源,并在想要更新数据来源时进行同步。在控制台中选择知识库,然后在数据来源概述部分中选择同步。
-
选择创建知识库。当 Amazon Bedrock 创建知识库时,将显示状态进行中。您必须等待创建完成后,才能同步数据来源。
-
在 Amazon Bedrock 创建完知识库后,要配置数据来源,请按照将数据来源连接到知识库中的说明进行操作。
- API
-
使用 AWS CLI 创建 Neptune Analytics 分析数据库引擎知识库
-
首先使用上下文丰富配置创建数据来源。要执行此操作,请使用 Amazon Bedrock 代理构建时端点发送 CreateDataSource 请求。下面显示了 CLI 命令示例。
aws bedrock-agent create-data-source \
--name graph_rag_source \
--description data_source_for_graph_rag \
--knowledge-base-id LDBBY2K5AG \
--cli-input-json "file://input.json"
以下代码显示了 input.json 文件的内容。
{
"dataSourceConfiguration": {
"s3Configuration": {
"bucketArn": "arn:aws:s3:::<example-graphrag-datasets>",
"bucketOwnerAccountId": "<ABCDEFGHIJ>",
"inclusionPrefixes": [ <"example-dataset"> ]
},
"type": "S3",
},
"VectorIngestionConfiguration": {
"contextEnrichmentConfiguration":
"type": "BEDROCK_FOUNDATION_MODEL",
"bedrockFoundationModelConfiguration": {
"modelArn": "arn:aws:bedrock:<region>::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
"enrichmentStrategyConfiguration": {
"method": "CHUNK_ENTITY_EXTRACTION"
}
}
}
}
-
要创建知识库,请使用 Amazon Bedrock 代理构建时端点发送 CreateKnowledgeBase 请求。下面显示了 CLI 命令示例。
aws bi create-knowledge-base \
--name <"knowledge-base-graphrag"> \
--role-arn arn:aws:iam::<accountId>:role/<BedrockExecutionRoleForKnowledgeBase> \
--cli-input-json "file://input.json"
下面显示的是 input.json 文件的内容。
{
"storageConfiguration": {
"type": "NEPTUNE_ANALYTICS"
"neptuneAnalyticsConfiguration": {
"graphArn": "arn:aws:neptune-graph:<region>:<>:graph/<graphID>",
"fieldMapping": {
"metadataField": "metadata",
"textField": "text"
},
}
},
"knowledgeBaseConfiguration": {
"type": "VECTOR",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "arn:aws:bedrock:<region>::foundation-model/cohere.embed-english-v3"
}
}
}
-
在基于 GraphRAG 的应用程序运行时,您可以继续使用知识库 API 操作,为最终用户提供更全面、更相关和更易于解释的响应。以下各节将向您展示如何使用 CLI 命令启动摄取和执行检索查询。
同步数据来源
创建完知识库后,需要摄取或同步数据,以便查询数据。摄取过程根据您指定的向量嵌入模型和配置提取图形结构,并将数据来源中的原始数据转换为向量嵌入。
以下命令演示了如何使用 CLI 启动摄取作业的示例。
aws bedrock-agent start-ingestion-job \
--data-source-id <"ABCDEFGHIJ"> \
--knowledge-base-id <"EFGHIJKLMN">
有关更多信息以及如何使用控制台和 API 同步数据来源,请参阅将您的数据与 Amazon Bedrock 知识库同步。
将更改摄取到入知识库中
使用 Amazon S3 作为数据来源时,您可以通过一个步骤修改数据来源并同步更改。通过直接摄取,您只需一个操作即可直接在知识库中添加、更新或删除文件,知识库无需同步即可访问文档。直接摄取会使用 KnowledgeBaseDocuments API 操作,对您直接提交到为知识库设置的向量存储中的文档编制索引。您还可以通过这些操作直接查看知识库中的文档,而不必导航到连接的数据来源进行查看。有关更多信息,请参阅 将更改直接摄取到知识库中。
测试知识库
现在,您已经设置了知识库,可以发送查询和生成响应来测试知识库。
以下代码演示 CLI 命令示例。
aws bedrock-agent-runtime retrieve \
--knowledge-base-id <"ABCDEFGHIJ"> \
--retrieval-query="{\"text\": \"What are the top three video games available now?\"}"
有关更多信息,请参阅 查询连接到 Amazon Neptune Analytics 分析数据库引擎图表的知识库。