连接 Salesforce 获取你的 Amazon Bedrock 知识库 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接 Salesforce 获取你的 Amazon Bedrock 知识库

Salesforce 是一款客户关系管理 (CRM) 工具,用于管理支持、销售和营销团队。你可以使用以下任一方法连接到你的 Salesforce 实例以获取你的 Amazon Bedrock 知识库 AWS 适用于 Amazon Bedrock CreateDataSourceAPI(参见 Amazon Bedrock 支持的管理控制台和 SDKs AWS CLI).

注意

Salesforce 数据源连接器处于预览版,可能会发生变化。

目前,只有 Amazon OpenSearch Serverless 矢量存储可用于此数据源。

可以抓取的文件数量有限制,每个文件的 MB 数量是有限的。有关知识库,请参阅配额

支持的特征

  • 自动检测主要文档字段

  • 包含/排除内容过滤器

  • 对已添加、更新、删除的内容进行增量内容同步

  • OAuth2.0 身份验证

先决条件

在 Salesforce 中,请确保你

  • 记下你的 Salesforce 实例URL。例如,https://company.salesforce.com/。 该实例必须运行 Salesforce 连接应用程序。

  • 创建 Salesforce 连接应用程序并配置客户端凭据。然后,对于您选择的应用程序,从OAuth设置中复制使用者密钥(客户端 ID)和消费者密钥(客户端密钥)。有关更多信息,请参阅 Salesforce 关于创建互联应用程序为 OAuth 2.0 客户端凭证配置互联应用程序的文档。

    注意

    对于 Salesforce Connected Apps,请务必在 “运行方式” 字段中搜索并选择用户名或客户凭证的别名。

在你的 AWS 账户,请确保你

  • 将您的身份验证凭证存储在 AWS Secrets Manager secret 并记下该密钥的 Amazon 资源名称 (ARN)。按照此页面上的 Connection 配置说明添加密钥中必须包含的键值对。

  • 包括连接到您的数据源的必要权限 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” 的任何文件的抓取。您也可以指定包含前缀/正则表达式模式以包含某些内容实体或内容类型。如果您指定了 “包含” 和 “排除” 筛选器,并且两者都与文档匹配,则排除过滤器优先,并且不会对文档进行抓取。

排除或筛选出广告系列名称中包含 “私人” 的广告系列的正则表达式模式示例:”。 *私人。 *”

您可以对以下内容类型应用包含/排除过滤器:

  • Account: 账号/标识符

  • Attachment: 附件文件名及其扩展名

  • Campaign: 活动名称和相关标识符

  • ContentVersion: 文档版本和相关标识符

  • Partner: 合作伙伴信息字段,包括相关标识符

  • Pricebook2: 产品/价目表名称

  • Case: 客户咨询/问题编号和其他信息字段,包括相关标识符(请注意:可能包含个人信息,您可以选择排除或过滤掉这些信息)

  • Contact: 客户信息字段(请注意:可能包含个人信息,您可以选择排除或过滤掉这些信息)

  • Contract: 合同名称和相关标识符

  • Document: 文件名及其扩展名

  • Idea: 想法信息字段和相关标识符

  • Lead: 潜在的新客户信息字段(请注意:可能包含个人信息,您可以选择排除或过滤掉这些信息)

  • Opportunity: 待定销售/交易信息字段和相关标识符

  • Product2: 商品信息字段和相关标识符

  • Solution: 客户查询/问题的解决方案名称和相关标识符

  • Task: 任务信息字段和相关标识符

  • FeedItem: chatter Feed 帖子的标识符

  • FeedComment: 评论所属的 chatter Feed 帖子的标识符

  • Knowledge__kav: 知识文章版本和相关标识符

  • User: 组织内的用户别名

  • CollaborationGroup: Chatter 群组名称(唯一)

每次您的数据源与知识库同步时,数据源连接器都会抓取新内容、修改内容和已删除内容。 Amazon Bedrock 可以使用数据源的机制来跟踪内容更改并抓取自上次同步以来更改的内容。首次将数据源与知识库同步时,默认情况下会抓取所有内容。

要将您的数据源与知识库同步,请在控制台中使用StartIngestionJobAPI或选择您的知识库,然后在数据源概述部分中选择同步

重要

您从数据源同步的所有数据都可供bedrock:Retrieve有权检索数据的任何人使用。这也可以包括任何具有受控数据源权限的数据。有关更多信息,请参阅知识库权限

(对于 OAuth 2.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

以下是您的 Amazon Bedrock 知识库连接到 Salesforce 的配置示例。您可以在控制台中将数据源配置为知识库创建步骤的一部分。

  1. 登录 AWS Management Console 使用具有 Amazon Bedrock 权限的IAM角色,然后打开 Amazon Bedrock 控制台,网址为。https://console.aws.amazon.com/bedrock/

  2. 在左侧导航窗格中,选择知识库

  3. 知识库部分,选择创建知识库

  4. 提供知识库详细信息。

    1. 提供知识库名称和可选描述。

    2. 提供 AWS Identity and Access Management 角色,用于获得创建知识库所需的必要访问权限。

      注意

      这些区域有: IAM 作为创建知识库的控制台步骤的一部分,可以为您创建具有所有所需权限的角色。完成创建知识库的步骤后, IAM 具有所有必需权限的角色将应用于您的特定知识库。

    3. 创建要分配给知识库的任何标签。

    转到下一节以配置您的数据源。

  5. 选择 Salesforce 作为您的数据源并提供连接配置的详细信息。

    1. 提供数据源名称和可选描述。

    2. 提供你的 Salesforce 实例URL。例如,https://company.salesforce.com/。 该实例必须运行 Salesforce 连接应用程序。

    检查高级设置。您可以选择更改默认的选定设置。

  6. 在高级设置中设置您的临时数据加密密钥和数据删除策略。

    对于 KMS key 设置,您可以选择自定义密钥或使用默认提供的数据加密密钥。

    在将数据转换为嵌入式数据时, Amazon Bedrock 使用密钥加密您的临时数据 AWS 默认情况下拥有并管理。你可以使用自己的KMS密钥。有关更多信息,请参阅 加密数据提取期间的临时数据存储

    对于数据删除策略设置,您可以选择以下任一选项:

    • 删除:删除知识库或数据源资源后,从数据源中删除所有转换为矢量嵌入的数据。请注意,矢量存储本身不会被删除,只会删除数据。如果出现以下情况,则忽略此标志 AWS 帐户已删除。

    • 保留:在删除知识库或数据源资源后,保留数据源中转换为矢量嵌入的所有数据。请注意,如果您删除知识库或数据源资源,则矢量存储本身不会被删除。

    继续配置您的数据源。

  7. 提供身份验证信息以连接您的 Salesforce 实例:

    1. 对于 OAuth 2.0 身份验证,请转至 AWS Secrets Manager 添加您的私有身份验证凭证或使用您创建的密钥的现有 Amazon 资源名称 (ARN)。您的密钥必须包含 Salesforce Connected App 使用者密钥(客户端 ID)、消费者密钥(客户端密钥)和 Salesforce 实例URL或URL用于请求身份验证令牌的。有关更多信息,请参阅 Salesforce 关于创建互联应用程序为 OAuth 2.0 客户端凭证配置互联应用程序的文档。

    继续配置您的数据源。

  8. 选择使用过滤器/正则表达式模式来包含或排除某些内容。否则,所有标准内容都会被抓取。

    继续配置您的数据源。

  9. 选择默认或自定义的分块和解析配置。

    1. 如果您选择自定义设置,请选择以下分块选项之一:

      • 固定大小的分块:内容分成您设置的近似标记大小的文本块。您可以设置区块中不得超过的最大令牌数量以及连续区块之间的重叠百分比。

      • 默认分块:内容拆分为最多 300 个标记的文本块。如果单个文档或内容包含的标记少于 300 个,则不会进一步拆分该文档。

      • 分层分块:将内容组织成父子区块的嵌套结构。您可以设置最大父区块令牌大小和最大子区块令牌大小。您还可以设置连续父区块和连续子区块之间重叠标记的绝对数量。

      • 语义分块:将内容组织成语义相似的文本块或句子组。您可以设置要组合在一起的目标/当前句子周围的最大句子数(缓冲区大小)。您还可以设置断点百分位数阈值,用于将文本分成有意义的块。语义分块使用基础模型。查看 Amazon Bedrock有关基础模型成本信息的定价。

      • 不分块:每个文档都被视为单个文本块。您可能需要通过将文档拆分成单独的文件来对其进行预处理。

      注意

      创建数据源后,您无法更改分块策略。

    2. 你可以选择使用 Amazon Bedrock的基础模型,用于解析文档以解析比标准文本更多的内容。例如,您可以解析文档中的表格数据,同时保持其结构不变。查看 Amazon Bedrock有关基础模型成本信息的定价。

    3. 你可以选择使用 AWS Lambda 函数用于自定义您的分块策略以及如何处理和提取您的文档元数据属性/字段。提供 Amazon S3 Lambda 函数输入和输出的存储桶位置。

    转到下一节来配置您的矢量存储。

  10. 选择用于将数据转换为矢量嵌入的模型。

    创建矢量存储以允许 Amazon Bedrock 存储、更新和管理嵌入内容。您可以快速创建新的矢量存储库,也可以从已创建的支持的矢量存储中进行选择。目前,只有 Amazon OpenSearch Serverless 矢量存储可用于此数据源。如果您创建新的矢量存储,则会为您设置包含必填字段的 Amazon OpenSearch Serverless 矢量搜索集合和索引。如果从支持的矢量存储中进行选择,则必须映射矢量字段名称和元数据字段名称。

    转到下一部分,查看您的知识库配置。

  11. 查看知识库的详细信息。在继续创建知识库之前,您可以编辑任何部分。

    注意

    创建知识库所需的时间取决于您的特定配置。知识库创建完成后,知识库的状态将更改为 “已就绪” 或 “可用”。

    知识库准备就绪并可供使用后,您可以首次同步数据源,也可以在任何时候同步您的数据源,以使内容保持最新状态。在控制台中选择您的知识库,然后在数据源概述部分中选择同步

API

以下是您的 Amazon Bedrock 知识库连接到 Salesforce 的配置示例。您可以使用 with 来API配置数据源 AWS CLI 或者支持SDK,比如 Python。调用后 CreateKnowledgeBase,您可以调CreateDataSource用创建数据源,其中包含您的连接信息dataSourceConfiguration。请记住,还要在中指定您的分块策略/方法,vectorIngestionConfiguration并在中指定您的数据删除政策 dataDeletionPolicy

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