ナレッジベースの Salesforce に接続する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ナレッジベースの Salesforce に接続する

Salesforce は、サポート、営業、マーケティングの各チームを管理するための顧客関係管理 (CRM) ツールです。Amazon Bedrock の AWS マネジメントコンソールまたは CreateDataSource API を使用して、Amazon Bedrock ナレッジベースの Salesforce インスタンスに接続できます (「Amazon Bedrock がサポートする SDKs AWS CLI」を参照)。 CreateDataSource

注記

Salesforce データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。

Salesforce データソースは、テーブル、チャート、図、その他のイメージなどのマルチモーダルデータをサポートしていません。

現在、このデータソースで使用できるのは Amazon OpenSearch Serverless ベクトルストアのみです。

クロールできるファイル数とファイルあたりの MB に制限があります。「Quotas for knowledge bases」を参照してください。

サポートされている機能

  • メインドキュメントフィールドの自動検出

  • 包含/除外コンテンツフィルター

  • 追加、更新、削除されたコンテンツの増分同期

  • OAuth 2.0 認証

前提条件

Salesforce で、次の作業を行ったことを確認してください。

  • Salesforce インスタンス URL を書き留めます。例えば、https://company.salesforce.com/ です。インスタンスは Salesforce 接続アプリケーションを実行している必要があります。

  • Salesforce 接続アプリケーションを作成し、クライアント認証情報を設定します。次に、選択したアプリで、OAuth 設定からコンシューマーキー (クライアント ID) とコンシューマーシークレット (クライアントシークレット) をコピーします。詳細については、「接続されたアプリケーションの作成」および「OAuth 2.0 クライアント認証情報用の接続されたアプリケーションの設定」の Salesforce ドキュメントを参照してください。

    注記

    Salesforce Connected Apps の場合、クライアント認証情報フローの [として実行] フィールドで、クライアント認証情報のユーザー名またはエイリアスを検索して選択します。

AWS アカウントで、以下を確認してください

  • 認証の認証情報をAWS Secrets Manager シークレットに保存し、シークレットの Amazon リソースネーム (ARN) を書き留めます。このページの接続設定の説明に従って、シークレットに入れる必要があるキーと値のペアを含めます。

  • ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。このデータソースがナレッジベース IAM ロールに追加するために必要なアクセス許可については、「データソースへのアクセス許可」を参照してください。

注記

コンソールを使用する場合は、 に移動 AWS Secrets Manager してシークレットを追加するか、データソース設定ステップの一部として既存のシークレットを使用できます。ナレッジベースを作成するためのコンソールステップの一部として、必要なすべてのアクセス許可を持つ IAM ロールを作成できます。データソースやその他の設定を行うと、必要なすべてのアクセス許可を持つ IAM ロールが特定のナレッジベースに適用されます。

認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。データソース間で認証情報とシークレットを再利用することはお勧めしません。

接続設定

Salesforce インスタンスに接続するには、Amazon Bedrock がデータにアクセスしてクロールできるように、必要な設定情報を提供する必要があります。また、前提条件 に従う必要があります。

このデータソースの設定例をこのセクションに示します。

ドキュメントフィールドの自動検出、包含/除外フィルター、増分同期、シークレット認証情報、およびこれらの仕組みの詳細については、以下を選択してください。

データソースコネクタは、ドキュメントまたはコンテンツのすべてのメインメタデータフィールドを自動的に検出してクロールします。例えば、データソースコネクタは、ドキュメントの本文に相当する部分、ドキュメントタイトル、ドキュメントの作成日または変更日、またはドキュメントに適用される可能性のあるその他のコアフィールドをクロールできます。

重要

コンテンツに機密情報が含まれている場合、 Amazon Bedrock は機密情報を使用して応答できます。

メタデータフィールドにフィルタリング演算子を適用して、レスポンスの関連性をさらに高めることができます。例えば、ドキュメントの「epoch_modification_time」は、ドキュメントの最終更新日を 1970 年 1 月 1 日からの経過秒数で表します。「epoch_modification_time」にフィルターを適用して、その値が特定の数より大きい最新のデータだけを取得できます。メタデータフィールドに適用できるフィルタリング演算子の詳細については、「メタデータとフィルタリング」を参照してください。

特定のコンテンツのクロールを含めることも除外することもできます。例えば、ファイル名に「private」が含まれているファイルのクロールをスキップするために、除外プレフィックス/正規表現パターンを指定することができます。特定のコンテンツエンティティまたはコンテンツタイプを含めるように、包含プレフィックス/正規表現パターンを指定することもできます。包含フィルターと除外フィルターを指定し、両方がドキュメントに一致する場合、除外フィルターが優先され、ドキュメントはクロールされません。

キャンペーン名に「private」を含むキャンペーンを除外する正規表現パターンの例: 「.*private.*」

包含/除外フィルターは、次のコンテンツタイプに適用できます。

  • 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 グループ名 (一意)

データソースコネクタは、データソースがナレッジベースと同期するたびに、新規、変更、削除されたコンテンツをクロールします。 Amazon Bedrock は、データソースのメカニズムを使用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをクロールできます。データソースをナレッジベースと初めて同期すると、デフォルトですべてのコンテンツがクロールされます。

データソースをナレッジベースと同期するには、StartIngestionJob API を使用するか、コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。

重要

データソースから同期するすべてのデータは、データを取得する bedrock:Retrieve アクセス許可を持つすべてのユーザーが利用できるようになります。これには、データソースのアクセス許可が制御されているデータを含めることもできます。詳細については、「Knowledge base permissions」を参照してください。

(OAuth 2.0 認証の場合) AWS Secrets Manager のシークレット認証情報には、次のキーと値のペアを含める必要があります。

  • consumerKey: アプリクライアント ID

  • consumerSecret: アプリケーションクライアントシークレット

  • authenticationUrl: Salesforce インスタンス URL または認証トークンをリクエストする URL

注記

のシークレット AWS Secrets Manager は、ナレッジベースの同じリージョンを使用する必要があります。

Console
Salesforce インスタンスをナレッジベースに接続する
  1. 「」の手順に従ってAmazon Bedrock ナレッジベースのデータソースに接続してナレッジベースを作成する、データソースとして Salesforce を選択します。

  2. データソースの名前とオプションの説明を入力します。

  3. Salesforce インスタンス URL を指定します。例えば、https://company.salesforce.com/ です。インスタンスは Salesforce 接続アプリケーションを実行している必要があります。

  4. 詳細設定セクションでは、オプションで以下を設定できます。

    • 一時データストレージ用の KMS キー。– データをデフォルト AWS マネージドキー または独自の KMS キーを使用して埋め込みに変換しながら、一時データを暗号化できます。詳細については、「データインジェスト時の一時データストレージの暗号化」を参照してください。

    • データ削除ポリシー – デフォルトでベクトルストアに保存されているデータソースのベクトル埋め込みを削除するか、ベクトルストアデータを保持することを選択できます。

  5. Salesforce インスタンスに接続するための認証情報を指定します。

    1. OAuth 2.0 認証の場合は、 に移動 AWS Secrets Manager してシークレット認証情報を追加するか、作成したシークレットに既存の Amazon リソースネーム (ARN) を使用します。シークレットには、Salesforce Connected App コンシューマーキー (クライアント ID)、コンシューマーシークレット (クライアントシークレット)、および Salesforce インスタンス URL または認証トークンをリクエストする URL が含まれている必要があります。詳細については、「接続されたアプリケーションの作成」および「OAuth 2.0 クライアント認証情報用の接続されたアプリケーションの設定」の Salesforce ドキュメントを参照してください。

  6. (オプション) コンテンツの解析とチャンキングセクションで、データの解析とチャンキングの方法をカスタマイズできます。これらのカスタマイズの詳細については、以下のリソースを参照してください。

  7. フィルター/正規表現パターンの使用を選択して、特定のコンテンツを含めるか除外します。指定しない場合、標準コンテンツはすべてクロールされます。

  8. 埋め込みモデルとベクトルストアの選択を続けます。残りのステップを確認するには、「」に戻りAmazon Bedrock ナレッジベースのデータソースに接続してナレッジベースを作成する、データソースを接続した後にステップから続行します。

API

以下は、Amazon Bedrock ナレッジベースの Salesforce に接続するための設定の例です。データソースは、 API と AWS CLI または Python などのサポートされている SDK を使用して設定します。CreateKnowledgeBase を呼び出した後、CreateDataSource を呼び出して、dataSourceConfiguration の接続情報を使用してデータソースを作成します。

オプションの vectorIngestionConfigurationフィールドを含めることで取り込みに適用できるカスタマイズについては、「」を参照してくださいデータソースの取り込みをカスタマイズする

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" }