使用 Amazon Neptune Analytics 分析数据库引擎图表创建 Amazon Bedrock 知识库 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 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 分析数据库引擎知识库
  1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后,通过以下网址打开 Amazon Bedrock 控制台:https://console.aws.amazon.com/bedrock

  2. 在左侧导航窗格中,选择知识库

  3. 知识库部分中,选择创建,然后选择带有向量存储的知识库

  4. (可选)在知识库详细信息下方,更改默认名称并为知识库提供描述。

  5. IAM 权限下,选择一个能够向 Amazon Bedrock 授予对其他所需 AWS 服务的访问权限的 IAM 角色。您可以让 Amazon Bedrock 创建服务角色,也可以选择您已为 Neptune Analytics 分析数据库引擎创建的自定义角色。有关示例,请参阅在 Amazon Neptune Analytics 分析数据库引擎中访问向量数据库的权限

  6. 请务必选择 Amazon S3 作为数据来源,然后选择下一步来配置您的数据来源。

  7. 提供文件的 S3 URI,该文件将用作您的数据来源,数据来源将与知识库连接并与 Amazon Neptune Analytics 分析数据库引擎集成。有关您可以提供的其他步骤和可选信息,请参阅将数据来源连接到知识库

  8. 嵌入模型部分,选择嵌入模型以将数据转换为向量嵌入。或者,您可以使用其他配置部分来指定向量维度。对于嵌入类型,建议使用浮点向量嵌入。

    注意

    嵌入模型的向量维度,必须与您在创建 Neptune Analytics 分析数据库引擎图表时指定的向量维度相匹配。

  9. 向量数据库部分,选择创建向量存储的方法,然后选择 Amazon Neptune Analytics 分析数据库引擎(GraphRAG)作为向量存储,以存储将用于查询的嵌入内容。要创建向量存储,您可以使用下列任一方法:

    • 建议您使用快速创建新的向量存储方法来快速开始创建向量存储。选择 Amazon Neptune Analytics 分析数据库引擎(GraphRAG)作为您的向量存储。此选项不需要您拥有任何现有的 Neptune Analytics 分析数据库引擎资源。知识库会自动生成文档嵌入并存储在 Amazon Neptune 中,包括从文档语料库中派生的实体及其关系的图表表示。

    • 或者,如果您已经创建了 Neptune Analytics 分析数据库引擎图表和向量索引,则可以使用选择已创建的向量存储选项。选择 Amazon Neptune Analytics 分析数据库引擎(GraphRAG)作为您的向量存储,并在向量索引中识别图形 ARN、向量字段名称和元数据字段名称。有关更多信息,请参阅 将您创建的向量存储用于知识库的先决条件

  10. 选择下一步并查看知识库的详细信息。在继续创建知识库之前,您可以编辑任何部分。

    注意

    创建知识库所用的时间取决于您的特定配置。知识库创建完成后,知识库的状态将更改为“已就绪”或“可用”。

    知识库准备就绪并可供使用后,您可以首次同步数据来源,并在想要更新数据来源时进行同步。在控制台中选择知识库,然后在数据来源概述部分中选择同步

  11. 选择创建知识库。当 Amazon Bedrock 创建知识库时,将显示状态进行中。您必须等待创建完成后,才能同步数据来源。

  12. 在 Amazon Bedrock 创建完知识库后,要配置数据来源,请按照将数据来源连接到知识库中的说明进行操作。

API
使用 AWS CLI 创建 Neptune Analytics 分析数据库引擎知识库
  1. 首先使用上下文丰富配置创建数据来源。要执行此操作,请使用 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" } } } }
  2. 要创建知识库,请使用 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" } } }
  3. 在基于 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 分析数据库引擎图表的知识库