

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

# 進階知識庫設定
<a name="advanced-knowledge-base-settings"></a>

進階知識庫設定，例如知識庫篩選和具有角色型存取控制的 RAG，可用於 解決方案。當具有角色型存取控制的 RAG 特別適用於 Amazon Kendra 時，知識庫篩選可以套用到其中一個知識庫。

## 知識庫篩選
<a name="knowledge-base-filtering"></a>

解決方案可讓您在精靈知識庫步驟的進階 RAG 組態區段中部署使用案例時，指定 [Amazon Kendra 屬性篩選條件](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AttributeFilter.html)或 Bedrock 知識庫擷取篩選條件。 [https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)這些篩選條件會定義如何查詢知識庫中的資料來源，例如搜尋策略、基礎文件的語言為查詢等。

在這兩種情況下，JSON 物件都會用來根據每個服務文件中指定的格式來指定篩選條件設定 （如上連結）。

 *範例 1：Kendra AttributeFilter* 

```
{
 "EqualsTo": {
 "Key": "_language_code",
 "Value": {
 "StringValue": "es"
 }
 }
}
```

 *範例 2：Batrock RetrievalFilter* 

```
{
 "equals": {
 "key": "language",
 "value": "es"
 }
}
```

## 使用 Amazon Kendra 的角色型存取控制的 RAG
<a name="rag-rbac-with-kendra"></a>

 [角色型存取控制 (RBAC)](https://docs.aws.amazon.com/kendra/latest/dg/create-index-access-control.html) 允許控制哪些使用者或群組可以存取 Amazon Kendra 索引中的特定文件，或在搜尋結果中查看特定文件。若要使用 AWS (GAAB) 上的生成式 AI 應用程式建置器使用案例來設定 Amazon Kendra 索引 ID 的 RBAC，請遵循下列步驟：

 **1。設定 Amazon Kendra 索引** 

1. 確保您已建立 Amazon Kendra 索引，並至少新增一個資料來源。

1. 根據使用者群組設定資料來源的存取控制。對於 S3 資料來源，請遵循[文件中的指示](https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html)，使用在 Amazon Cognito 使用者集區中建立的相同群組名稱來設定存取控制清單 (ACLs)。這可確保使用者只能存取他們根據群組成員資格獲授權檢視的文件和搜尋結果。

**注意**  
在您建立的 Kendra 索引中的**使用者存取控制**下，**將字符型使用者存取控制**保留為**否**。 當您在步驟 2 中啟用**角色型存取控制**時，AWS 上的生成式 AI 應用程式建置器會從使用者身分驗證字符擷取適當的宣告，並建立屬性篩選條件。

 **2. 使用 GAAB 部署精靈部署 RAG 使用案例** 

1. 遵循 GAAB 部署精靈中的螢幕精靈說明，直到您達到精靈的步驟 4 來設定 RAG。

1. 在部署精靈的**選取知識庫**步驟中，選擇 **Amazon Kendra** 作為知識庫類型。

1. 指定您是否擁有現有的 Amazon Kendra 索引，還是要建立新的索引。如果您有現有的索引，請提供已根據使用者群組使用存取控制清單 (ACLs) 設定的 Amazon Kendra 索引 ID。

1. 啟用**角色型存取控制**選項。此選項可確保根據使用者的角色和群組許可，篩選從 Amazon Kendra 索引傳回的搜尋結果。

1. 檢閱和部署使用案例。

 **3. 設定 Amazon Cognito** 

1. 找出 GAAB 部署所使用的 Amazon Cognito 使用者集區。此 Amazon Cognito 使用者集區通常由主要部署儀表板 CloudFormation 堆疊建立。

1. 在 Amazon Cognito 使用者集區中建立新使用者。建立使用者時，請選取「傳送電子郵件邀請」選項，讓使用者透過電子郵件接收臨時登入憑證。這可讓新使用者註冊和存取 GAAB 應用程式。

1. 在 Amazon Cognito 使用者集區中建立使用者群組。確保群組名稱完全符合 Amazon Kendra 索引 ACLs 中設定的群組。這對於啟用 RBAC 至關重要，因為使用者的群組成員資格將決定他們可以存取的搜尋結果。

1. 根據使用者的角色和存取許可，將使用者指派給適當的群組。必須將使用者新增至 Amazon Kendra 索引 ACL 所需的群組，以及在 GAAB 部署期間建立的使用案例特定群組。這可確保使用者擁有存取特定使用案例和相關搜尋結果的必要許可。

遵循這些步驟，您將為您的 GAAB 部署設定角色型存取控制 (RBAC)，確保使用者只能根據其指派的使用者群組和許可，存取並與其授權的資訊和功能互動。

**注意**  
到目前為止，只有 Amazon Kendra 在 AWS 上的生成式 AI 應用程式建置器中支援知識庫的 RBAC。對於 Amazon Bedrock 知識庫，不支援 RBAC，但您可以使用中繼資料篩選條件來實現某種程度的篩選。如需詳細資訊，請參閱 [Amazon Bedrock 使用者指南。](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)