

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon Neptune Analytics 圖形建立 Amazon Bedrock 知識庫
<a name="knowledge-base-build-graphs-build"></a>

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.  AWS 管理主控台 使用具有使用 Amazon Bedrock 主控台之許可的 IAM 身分登入 。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 在左側導覽窗格中選擇**知識庫**。

1. 在**知識庫**區段中，選擇**建立**，然後選擇**具有向量存放區的知識庫**。

1. (選用) 在**知識庫詳細資訊**下，變更預設名稱並提供知識庫的描述。

1. 在 **IAM 許可**區段中，選擇提供 Amazon Bedrock 許可的 IAM 角色，以存取其他必要的 AWS 服務。您可以讓 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. 選擇**下一步**並檢閱知識庫的詳細資訊。您可以在繼續和建立知識庫之前編輯任何區段。
**注意**  
建立知識庫所需的時間取決於您的特定組態。建立知識庫完成後，知識庫的狀態會變更為就緒或可用。  
一旦您的知識庫準備就緒且可用，請於首次以及每當您想要將內容保持在最新狀態時同步您的資料來源。在主控台中選取您的知識庫，然後在資料來源概觀區段中選取**同步**。

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)。您的資料只會存放在與 Amazon 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-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)。