

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

# 連接至 Salesforce 以取得知識庫
<a name="salesforce-data-source-connector"></a>

Salesforce 是一款用於管理支援、銷售和行銷團隊的客戶關係管理 (CRM) 工具。您可以使用 [Amazon Bedrock 的 AWS 管理主控台](https://console.aws.amazon.com/bedrock/home)或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API 來連線至 Amazon Bedrock 知識庫的 Salesforce 執行個體 (請參閱 Amazon Bedrock [支援的 SDK 和 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html))。

**注意**  
Salesforce 資料來源連接器目前為預覽版本，並可能會有所變更。  
Salesforce 資料來源不支援多模態資料，例如資料表、圖表或其他影像。

目前，只有 Amazon OpenSearch Serverless 向量存放區可搭配此資料來源使用。

可網路爬取的檔案數量及每個檔案大小 (MB) 都有限制。請參閱[知識庫的配額](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支援的功能](#supported-features-salesforce-connector)
+ [必要條件](#prerequisites-salesforce-connector)
+ [連線組態](#configuration-salesforce-connector)

## 支援的功能
<a name="supported-features-salesforce-connector"></a>
+ 自動偵測主要文件欄位
+ 包含/排除內容篩選條件
+ 新增、更新、刪除內容的增量內容同步
+ OAuth 2.0 身分驗證

## 必要條件
<a name="prerequisites-salesforce-connector"></a>

**在 Salesforce 中，請確定您**：
+ 請記下您的 Salesforce 執行個體 URL。例如，*https://company.salesforce.com/*。執行個體必須執行 Salesforce 連線應用程式。
+ 建立 Salesforce 連線應用程式並設定用戶端憑證。然後，針對您選取的應用程式，從 OAuth 設定複製消費者金鑰 (用戶端 ID) 和消費者機密 (用戶端機密)。如需詳細資訊，請參閱有關[建立連線應用程式](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm&type=5)和[設定 OAuth 2.0 用戶端憑證的連線應用程式](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5)的 Salesforce 文件。
**注意**  
對於 Salesforce 連線應用程式，在用戶端憑證流程下，請確定您在「執行身分」欄位中搜尋並選取您用戶端憑證的使用者名稱或別名。

**在您的 AWS 帳戶中，請確認已完成下列項目**：
+ 將身分驗證憑證存放在 [AWS Secrets Manager 機密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中，並記下機密的 Amazon Resource Name (ARN)。遵循此頁面上的**連線組態**指示，以包含必須在機密中包含的鍵/值對。
+ 在知識庫的 AWS Identity and Access Management (IAM) 角色/許可政策中包含要連接至資料來源的必要許可。如需將此資料來源新增至知識庫 IAM 角色的必要許可資訊，請參閱[存取資料來源的許可](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)。

**注意**  
如果使用主控台，您可以前往 AWS Secrets Manager 新增秘密，或在資料來源組態步驟的過程中使用現有的秘密。您可以在建立知識庫的主控台步驟中，為您建立具有所有必要許可的 IAM 角色。在您設定資料來源和其他組態之後，具有所有必要許可的 IAM 角色會套用至特定知識庫。  
建議定期更新或輪換憑證與機密。僅授予作業所需的最低存取層級，以確保自身安全。不建議您在資料來源之間重複使用憑證和機密。

## 連線組態
<a name="configuration-salesforce-connector"></a>

若要連線至 Salesforce 執行個體，您必須提供必要的組態資訊，Amazon Bedrock 才能存取和網路爬取您的資料。您也必須遵循 [必要條件](#prerequisites-salesforce-connector)。

本節包含此資料來源的組態範例。

如需文件欄位的自動偵測、包含/排除篩選條件、增量同步、私密身分驗證憑證，以及這些運作方式的詳細資訊，請選取下列各項：

### 自動偵測主要文件欄位
<a name="ds-salesforce-document-fields"></a>

資料來源連接器會自動偵測和網路爬取文件或內容的所有主要中繼資料欄位。例如，資料來源連接器可以網路爬取與您文件同等的文件內文、文件標題、文件建立或修改日期，或其他可能適用於文件的核心欄位。

**重要**  
如果內容包含敏感資訊，則 Amazon Bedrock 可能會使用敏感資訊來回應。

您可以將篩選運算子套用至中繼資料欄位，以協助您進一步改善回應的相關性。例如，文件 "epoch\$1modification\$1time" 或文件上次更新時間的 1970 年 1 月 1 日經過的秒數。您可以篩選最近的資料，其中 "epoch\$1modification\$1time" *大於*特定數字。如需可套用至中繼資料欄位之篩選運算子的詳細資訊，請參閱[中繼資料和篩選](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)。

### 包含/排除篩選條件
<a name="ds-salesforce-inclusion-exclusion"></a>

您可以包含或排除網路爬取特定內容。例如，您可以指定排除字首/規則表達式模式，略過對檔案名稱中包含「私有」的任何檔案的網路爬取。您也可以指定包含字首/規則表達式模式，以包含特定內容實體或內容類型。如果您指定包含篩選條件和排除篩選條件，且兩者皆與文件相符，則排除篩選條件會優先，且不會網路爬取文件。

規則運算式模式的範例，用於排除或篩選出行銷活動名稱中包含 "private" 的行銷活動：*".\$1private.\$1"*

您可以在下列內容類型上套用包含/排除篩選條件：
+ `Account`：帳戶號碼/識別碼
+ `Attachment`：附件檔案名稱及其副檔名
+ `Campaign`：行銷活動名稱和相關聯的識別碼
+ `ContentVersion`：文件版本和相關聯的識別碼
+ `Partner`：合作夥伴資訊欄位，包括相關聯的識別碼
+ `Pricebook2`：產品/價格清單名稱
+ `Case`：客戶查詢/問題編號和其他資訊欄位，包括相關聯的識別碼 (請注意：可包含個人資訊，您可以選擇排除或篩選掉)
+ `Contact`：客戶資訊欄位 (請注意：可包含個人資訊，您可以選擇排除或篩選掉)
+ `Contract`：合約名稱和相關聯的識別碼
+ `Document`：檔案名稱及其副檔名
+ `Idea`：構想資訊欄位和相關聯的識別碼
+ `Lead`：潛在的新客戶資訊欄位 (請注意：可包含個人資訊，您可以選擇排除或篩選掉)
+ `Opportunity`：待定的銷售/交易資訊欄位和相關聯的識別碼
+ `Product2`：產品資訊欄位和相關聯的識別碼
+ `Solution`：客戶查詢/問題的解決方案名稱和相關聯的識別碼
+ `Task`：任務資訊欄位和相關聯的識別碼
+ `FeedItem`：Chatter 摘要文章的識別碼
+ `FeedComment`：評論所屬的 Chatter 摘要文章其識別碼
+ `Knowledge__kav`：知識文章標題
+ `User`：組織內的使用者別名
+ `CollaborationGroup`：Chatter 群組名稱 (唯一)

### 增量同步
<a name="ds-salesforce-incremental-sync"></a>

每次資料來源與知識庫同步時，資料來源連接器都會網路爬取新的、修改過的和刪除的內容。Amazon Bedrock 可以使用資料來源的機制來追蹤自上次同步以來變更的內容變更和網路爬取內容。當您第一次將資料來源與知識庫同步時，依預設會網路爬取所有內容。

若要將資料來源與知識庫同步，請使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API，或在主控台中選取知識庫，然後在資料來源概觀區段中選取**同步**。

**重要**  
您從資料來源同步的所有資料可供具有 `bedrock:Retrieve` 許可能擷取資料的任何人使用。這也可以包含具有受控資料來源許可的任何資料。如需詳細資訊，請參閱[知識庫許可](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

### 私密身分驗證憑證
<a name="ds-salesforce-secret-auth-credentials"></a>

(對於 OAuth 2.0 身分驗證) 您在 AWS Secrets Manager 中的私密身分驗證憑證應包含這些鍵/值對：
+ `consumerKey`：*應用程式用戶端 ID*
+ `consumerSecret`：*應用程式用戶端機密*
+ `authenticationUrl`：*Salesforce 執行個體 URL 或請求身分驗證字符的來源 URL*

**注意**  
您在 AWS Secrets Manager 中的秘密必須使用與知識庫相同的區域。

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

**將 Salesforce 執行個體連接至您的知識庫**

1. 遵循 [透過連線至 Amazon Bedrock 知識庫中的資料來源來建立知識庫](knowledge-base-create.md) 中的步驟，然後選擇 **Salesforce** 作為資料來源。

1. 提供資料來源的名稱和選用的描述。

1. 提供 Salesforce 執行個體 URL。例如，*https://company.salesforce.com/*。執行個體必須執行 Salesforce 連線應用程式。

1. 在**進階設定**區段中，您可以選擇設定下列項目：
   + **用於暫時性資料儲存的 KMS 金鑰。**– 您可以使用預設 AWS 受管金鑰 或您自己的 KMS 金鑰，在將資料轉換為嵌入時加密暫時性資料。如需詳細資訊，請參閱 [資料擷取期間的暫時性資料儲存加密](encryption-kb.md#encryption-kb-ingestion)。
   + **資料刪除政策** – 您可以刪除預設存放在向量存放區中資料來源的向量嵌入，或選擇保留向量存放區資料。

1. 提供驗證資訊以連線到 Salesforce 執行個體：

   1. 若是 OAuth 2.0 身分驗證，請前往 AWS Secrets Manager 新增您的私密身分驗證憑證，或使用現有的 Amazon Resource Name (ARN) 作為您建立的密碼。您的機密必須包含 Salesforce 連線應用程式消費者金鑰 (用戶端 ID)、消費者機密 (用戶端機密)，以及 Salesforce 執行個體 URL 或請求身分驗證字符的來源 URL。如需詳細資訊，請參閱有關[建立連線應用程式](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm&type=5)和[設定 OAuth 2.0 用戶端憑證的連線應用程式](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5)的 Salesforce 文件。

1. (選用) 在**內容剖析和分塊**區段中，您可以自訂如何將資料剖析和分塊。請參閱下列資源進一步了解這些自訂項目：
   + 如需剖析選項的詳細資訊，請參閱[剖析資料來源的選項](kb-advanced-parsing.md)。
   + 如需有關分塊策略的詳細資訊，請參閱[內容群集如何適用於知識庫](kb-chunking.md)。
**警告**  
在連線至資料來源之後，便無法變更分塊策略。
   + 如需如何使用 Lambda 函數自訂資料分塊和處理中繼資料的詳細資訊，請參閱[使用自訂轉換 Lambda 函數來定義如何擷取您的資料](kb-custom-transformation.md)。

1. 選擇以使用篩選條件/規則表達式模式來包含或排除特定內容。否則將會網路爬取所有標準內容。

1. 繼續選擇嵌入模型和向量存放區。若要查看剩餘的步驟，請返回[透過連線至 Amazon Bedrock 知識庫中的資料來源來建立知識庫](knowledge-base-create.md)，並在連接資料來源後繼續進行該步驟。

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

以下是 Amazon Bedrock 知識庫連線至 Salesforce 的組態範例。您可以使用 API 搭配 AWS CLI 或支援的 SDK (例如 Python) 來設定資料來源。呼叫 [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) 之後，您可以呼叫 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)，在 `dataSourceConfiguration` 中使用連線資訊建立資料來源。

若要了解您可以透過包含選用 `vectorIngestionConfiguration` 欄位套用至擷取的自訂項目，請參閱[自訂資料來源的擷取](kb-data-source-customize-ingestion.md)。

**AWS Command Line Interface**

```
aws bedrock create-data-source \
 --name "Salesforce connector" \
 --description "Salesforce data source connector for Amazon Bedrock to use content in Salesforce" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://salesforce-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}'

salesforce-bedrock-connector-configuration.json
{
    "salesforceConfiguration": {
        "sourceConfiguration": {
            "hostUrl": "https://company.salesforce.com/",
            "authType": "OAUTH2_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Salesforce"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "Campaign",
                            "inclusionFilters": [
                                ".*public.*"
                            ],
                            "exclusionFilters": [
                                ".*private.*"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "SALESFORCE"
}
```

------