

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

# 使用 Amazon Neptune Analytics 分析数据库引擎图表创建 Amazon Bedrock 知识库
<a name="knowledge-base-build-graphs-build"></a>

GraphRAG 已完全集成到 Amazon Bedrock 知识库中，并使用 Amazon Neptune Analytics 分析数据库引擎进行图形和向量存储。您可以通过 AWS 管理控制台、或 SDK 开始在知识库中使用 GraphRag。 AWS CLI AWS 

您不需要任何现有的图形基础设施即可开始使用 GraphRAG。Amazon Bedrock 知识库会自动管理对 Amazon Neptune 图表的创建和维护操作。系统将从您上传到 Amazon S3 存储桶的文档中提取实体、事实和关系，用来自动创建和更新图表。因此，您无需先掌握任何图表建模知识即可向最终用户提供相关的响应。图表将存储在 Amazon Neptune Analytics 分析数据库引擎中。

创建知识库时，您需要设置或指定以下内容：
+ 定义和标识知识库的一般信息。
+ 具有知识库权限的服务角色。
+ 知识库的配置，包括在转换来自数据来源的数据时使用的嵌入模型、在其中存储嵌入的服务的存储配置。

**注意**  
您无法以根用户身份创建知识库。在开始这些步骤之前，请使用 IAM 用户登录。

以下内容显示如何创建知识库，以便通过控制台和 CLI 使用 Neptune GraphRAG。

------
#### [ Console ]

**通过控制台创建 Neptune Analytics 分析数据库引擎知识库**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，在 [https://console.aws.amazon.com/](https://console.aws.amazon.com/bedrock)bedrock 上打开 Amazon Bedrock 控制台。

1. 在左侧导航窗格中，选择**知识库**。

1. 在**知识库**部分中，选择**创建**，然后选择**带有向量存储的知识库**。

1. （可选）在**知识库详细信息**下方，更改默认名称并为知识库提供描述。

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

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

1. 提供文件的 **S3 URI**，该文件将用作您的数据来源，数据来源将与知识库连接并与 Amazon Neptune Analytics 分析数据库引擎集成。有关您可以提供的其他步骤和可选信息，请参阅[将数据来源连接到知识库](data-source-connectors.md)。

1. 在**嵌入模型**部分，选择嵌入模型以将数据转换为向量嵌入。或者，您可以使用**其他配置**部分来指定向量维度。对于嵌入类型，建议使用浮点向量嵌入。
**注意**  
嵌入模型的向量维度，必须与您在创建 Neptune Analytics 分析数据库引擎图表时指定的向量维度相匹配。

1. 在**向量数据库**部分，选择创建向量存储的方法，然后选择 **Amazon Neptune Analytics 分析数据库引擎（GraphRAG）**作为向量存储，以存储将用于查询的嵌入内容。要创建向量存储，您可以使用下列任一方法：
   + 建议您使用**快速创建新的向量存储**方法来快速开始创建向量存储。选择 **Amazon Neptune Analytics 分析数据库引擎（GraphRAG）**作为您的向量存储。此选项不需要您拥有任何现有的 Neptune Analytics 分析数据库引擎资源。知识库会自动生成文档嵌入并存储在 Amazon Neptune 中，包括从文档语料库中派生的实体及其关系的图表表示。
   + 或者，如果您已经创建了 Neptune Analytics 分析数据库引擎图表和向量索引，则可以使用**选择已创建的向量存储**选项。选择 **Amazon Neptune Analytics 分析数据库引擎（GraphRAG）**作为您的向量存储，并在向量索引中识别图形 ARN、向量字段名称和元数据字段名称。有关更多信息，请参阅 [将您创建的向量存储用于知识库的先决条件](knowledge-base-setup.md)。

1. 在**图形构造模型**部分，选择用于在摄取期间从文档中提取实体和关系的基础模型。所选模型所需的权限将自动添加到知识库服务角色中。
**注意**  
某些模型只能通过跨区域推理配置文件支持。当您在 Amazon Bedrock 中调用跨区域推理配置文件时，您的请求和要提取的数据来自源区域，并自动路由到该配置文件中定义的目标区域之一，从而优化性能。全球跨区域推理配置文件的目标区域包括所有商业区域。例如，您可以使用格式`modelArn`为来自 us-west-2 区域的美国跨区域呼叫指定。`arn:aws:bedrock:us-west-2:account-id:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0`

   有关如何使用推理配置文件选择源和目标区域的指导，请参阅[推理配置文件支持的区域和模型](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)。您的数据仅存储在与亚马逊 Bedrock 知识库和 Amazon Neptune Analytics 实例相对应的来源区域。目标区域仅用于推理。

1. 选择**下一步**并查看知识库的详细信息。在继续创建知识库之前，您可以编辑任何部分。
**注意**  
创建知识库所用的时间取决于您的特定配置。知识库创建完成后，知识库的状态将更改为“已就绪”或“可用”。  
知识库准备就绪并可供使用后，您可以首次同步数据来源，并在想要更新数据来源时进行同步。在控制台中选择知识库，然后在数据来源概述部分中选择**同步**。

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

1. 在 Amazon Bedrock 创建完知识库后，要配置数据来源，请按照[将数据来源连接到知识库](data-source-connectors.md)中的说明进行操作。

------
#### [ API ]

**使用 Neptune Analytics 创建知识库 AWS CLI**

1. 首先使用上下文丰富配置创建数据来源。要执行此操作，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 请求。下面显示了 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"
               }
           }
       }
   }
   ```

   要使用文档构建图表，你可以`modelArn`使用 Claude 3 Haiku（如前面的示例所示）、Claude Haiku 4.5 和 Amazon Nova 系列（包括具有文本输入模式的 Nova 2 和 Nova 型号）。要查看您所在地区可用的基础模型，请参阅 [Amazon Bedrock 中支持的基础模型](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html)。
**注意**  
某些模型只能通过跨区域推理配置文件支持。当您在 Amazon Bedrock 中调用跨区域推理配置文件时，您的请求和要提取的数据来自源区域，并自动路由到该配置文件中定义的目标区域之一，从而优化性能。全球跨区域推理配置文件的目标区域包括所有商业区域。例如，您可以使用格式`modelArn`为来自 us-west-2 区域的美国跨区域呼叫指定。`arn:aws:bedrock:us-west-2:account-id:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0`

   要查看您的角色使用推理配置文件的策略要求，请参阅[跨区域推理配置文件的先决条件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html)。有关如何使用推理配置文件选择源和目标区域的指导，请参阅[推理配置文件支持的区域和模型](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)。您的数据仅存储在与亚马逊 Bedrock 知识库和 Amazon Neptune Analytics 实例相对应的来源区域。目标区域仅用于推理。

1. 要创建知识库，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) 请求。下面显示了 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"
           }
       }
   }
   ```

1. 在基于 GraphRAG 的应用程序运行时，您可以继续使用知识库 API 操作，为最终用户提供更全面、更相关和更易于解释的响应。以下各节将向您展示如何使用 CLI 命令启动摄取和执行检索查询。

------

## 选择并更新图表构造模型
<a name="knowledge-base-build-graphs-model"></a>

GraphRag 在摄取过程中使用基础模型从您的文档中提取实体和关系。在创建知识库或配置数据源时，您可以选择此模型。选择图形构造模型会自动实现情境丰富。

**重要**  
基础模型可以达到 end-of-life也可以被弃用。例如，Claude 3 Haiku 已移至 Legacy 状态。我们建议您选择当前支持的图形构造模型。要查看可用模型的状态，请参阅[模型生命周期](https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html)。

当您选择图表构造模型时，所需的权限会自动添加到知识库服务角色中。

有些模型只能通过跨区域推理配置文件获得。

**注意**  
使用跨区域推理时，要摄取的数据来自源区域，并被路由到目标区域进行推理。数据仅存储在与亚马逊 Bedrock 知识库和 Amazon Neptune Analytics 实例相对应的源区域。

**在创建知识库期间选择模型（控制台）**

在创建知识库工作流程（配置数据存储和处理）的第 3 步中，当您选择 **Amazon Neptune Analytics (GraphRag)** 作为矢量存储类型时，会出现**图形构造模型部分**。**选择** Select model 以选择用于在摄取期间从文档中提取实体和关系的模型。

**在现有数据源上更新模型（控制台）**

导航至知识库详情页面。在**数据源**部分，选择数据源并选择**编辑**。在编辑页面的**图表构造模型**下，选择一个新模型。选择 **Submit (提交)** 可保存您的更改。

**在知识库创建过程中选择模型 (API)**

通过 `CreateDataSource` API 创建数据源时，请在`modelArn``bedrockFoundationModelConfiguration`内指定`contextEnrichmentConfiguration`。有关完整示例，请参阅上面创建部分中的 API 选项卡。

**在现有数据源 (API) 上更新模型**

要更新现有数据源的图形构造模型，请使用`update-data-source`命令。以下示例说明如何在中指定新模型 ARN。`contextEnrichmentConfiguration`

```
aws bedrock-agent update-data-source \
    --data-source-id data-source-id \
    --knowledge-base-id knowledge-base-id \
    --name data-source-name \
    --data-source-configuration '{"type":"S3","s3Configuration":{"bucketArn":"arn:aws:s3:::bucket-name"}}' \
    --vector-ingestion-configuration '{"contextEnrichmentConfiguration":{"type":"BEDROCK_FOUNDATION_MODEL","bedrockFoundationModelConfiguration":{"modelArn":"model-arn","enrichmentStrategyConfiguration":{"method":"CHUNK_ENTITY_EXTRACTION"}}}}' \
    --region region
```

例如，要通过该地区基于美国的跨区域推理配置文件使用 Claude Haiku 4.5，请`us-west-2`按以下格式指定：`modelArn`

```
arn:aws:bedrock:us-west-2:account-id:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0
```

要查看您的角色使用推理配置文件的策略要求，请参阅[跨区域推理配置文件的先决条件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html)。有关如何使用推理配置文件选择源和目标区域的指导，请参阅[推理配置文件支持的区域和模型](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)。

## 同步数据来源
<a name="knowledge-base-build-graphs-sync"></a>

创建完知识库后，需要摄取或同步数据，以便查询数据。摄取过程根据您指定的向量嵌入模型和配置提取图形结构，并将数据来源中的原始数据转换为向量嵌入。

以下命令演示了如何使用 CLI 启动摄取作业的示例。

```
aws bedrock-agent start-ingestion-job \
--data-source-id <"ABCDEFGHIJ"> \
--knowledge-base-id <"EFGHIJKLMN">
```

有关更多信息以及如何使用控制台和 API 同步数据来源，请参阅[将您的数据与 Amazon Bedrock 知识库同步](kb-data-source-sync-ingest.md)。

## 将更改摄取到入知识库中
<a name="knowledge-base-build-graphs-ingest"></a>

使用 Amazon S3 作为数据来源时，您可以通过一个步骤修改数据来源并同步更改。通过直接摄取，您只需一个操作即可直接在知识库中添加、更新或删除文件，知识库无需同步即可访问文档。直接摄取会使用 `KnowledgeBaseDocuments` API 操作，对您直接提交到为知识库设置的向量存储中的文档编制索引。您还可以通过这些操作直接查看知识库中的文档，而不必导航到连接的数据来源进行查看。有关更多信息，请参阅 [将更改直接摄取到知识库中](kb-direct-ingestion.md)。

## 测试知识库
<a name="knowledge-base-build-graphs-test"></a>

现在，您已经设置了知识库，可以发送查询和生成响应来测试知识库。

以下代码演示 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 分析数据库引擎图表的知识库](kb-test-neptune.md)。