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

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

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

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

注記

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

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

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

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

サポートされている機能

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

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

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

  • OAuth 2.0 認証

前提条件

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

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

  • Salesforce 接続アプリケーションを作成し、クライアント認証情報を設定します。次に、選択したアプリで、OAuth設定からコンシューマーキー (クライアント ID) とコンシューマーシークレット (クライアントシークレット) をコピーします。詳細については、「接続されたアプリの作成」と「2OAuth.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」にフィルターを適用して、その値が特定の数より大きい最新のデータだけを取得できます。メタデータフィールドに適用できるフィルタリング演算子の詳細については、「メタデータとフィルタリング」を参照してください。

特定のコンテンツのクロールを含めることも除外することもできます。例えば、特定のコンテンツエンティティまたはコンテンツタイプを含める除外prefix/regular expression pattern to skip crawling any file that contains “private” in the file name. You could also specify an inclusion prefix/regular式パターンを指定できます。包含フィルターと除外フィルターを指定し、両方がドキュメントに一致する場合、除外フィルターが優先され、ドキュメントはクロールされません。

キャンペーン名に「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 は、データソースのメカニズムを使用して、コンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをクロールできます。データソースをナレッジベースと初めて同期すると、デフォルトですべてのコンテンツがクロールされます。

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

重要

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

(OAuth2.0 認証の場合) のシークレット認証情報には、次のキーと値のペアが含まれている AWS Secrets Manager 必要があります。

  • consumerKey: app client ID

  • consumerSecret: app client secret

  • authenticationUrl: Salesforce instance URL or the URL to request the authentication token from

注記

のシークレット 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) を使用します。シークレットには、認証トークンをリクエストURLする Salesforce 接続アプリケーションコンシューマーキー (クライアント ID)、コンシューマーシークレット (クライアントシークレット)、および Salesforce インスタンスURLまたは が含まれている必要があります。詳細については、「接続されたアプリの作成」と「2.0 クライアント認証情報の接続されたアプリの設定」の Salesforce OAuth ドキュメントを参照してください。

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

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

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

API

以下は、Amazon Bedrock ナレッジベースの Salesforce に接続するための設定の例です。または Python などの AWS CLI サポートされている APIでSDK、 を使用してデータソースを設定します。を呼び出した後CreateKnowledgeBaseCreateDataSourceを呼び出して、 の接続情報を使用してデータソースを作成します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" }