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

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

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

注意

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

Atlassian Confluence 是一款协作式工作管理工具,专为共享、存储和处理项目规划、软件开发和产品管理而设计。您可以使用适用于亚马逊 Bedrock 的AWS 管理控制台或 API CreateDataSource(参见 Amazon Bedrock 支持的软件开发工具包和),连接到 Confluence 实例以获取您的 Amazon Bedrock 知识库。 AWS CLI

Amazon Bedrock 支持连接到 Confluence 云实例。目前,只有 Amazon OpenSearch Serverless 矢量存储可用于此数据源。

支持的特征

  • 自动检测主要文档字段

  • 包含/排除内容过滤器

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

  • OAuth 2.0 身份验证、Confluence API 令牌

先决条件

在 Confluence 中,请确保您

  • 记下你的 Confluence 实例网址。例如,对于 Confluence Cloud,https://example.atlassian.net。Confluence Cloud 的网址必须是基本网址,以.atlassian.net 结尾。

  • 配置包含用户名(管理员账户的电子邮件地址)和密码(Confluence API 令牌)的基本身份验证凭证,以允许 Amazon Bedrock 连接到您的 Confluence Cloud 实例。有关如何创建 Confluence API 令牌的信息,请参阅 Atlassian 网站上的管理您的 Atlassian 账户的 API 令牌

  • (可选)使用应用程序密钥、应用程序密钥、访问令牌和刷新令牌等凭据配置 OAuth 2.0 应用程序。有关更多信息,请参阅 Atlassian 网站上的 OAuth 2.0 应用程序

  • 创建 OAuth 2.0 应用程序时,需要某些读取权限或范围才能连接到 Confluence。

    Confluence API:

    • 离线访问

    • 只读:content.attachment: Confluence

    • 阅读:confluence-content.all

    • 阅读:confluence-content.summ

    • 阅读:合流空间。摘要

在您的 AWS 账户中,请确保

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

  • 在知识库的 AWS Identity and Access Management (IAM) 角色/权限策略中包含连接数据源的必要权限。有关将此数据源添加到知识库 IAM 角色所需的权限的信息,请参阅访问数据源的权限

注意

如果您使用控制台,则可以 AWS Secrets Manager 前往添加您的密钥或选择现有密钥作为数据源配置步骤的一部分。作为创建知识库的控制台步骤的一部分,可以为您创建具有所有所需权限的 IAM 角色。配置数据源和其他配置后,具有所有必需权限的 IAM 角色将应用于您的特定知识库。

我们建议您定期刷新或轮换您的凭证和密码。为了安全起见,请仅提供必要的访问权限级别。我们不建议您跨数据源重复使用凭证和机密。

连接配置

要连接到您的 Confluence 实例,您必须提供必要的配置信息,以便 Amazon Bedrock 可以访问和抓取您的数据。您还必须遵循先决条件 .

本节包含此数据源的配置示例。

有关自动检测文档字段、包含/排除筛选器、增量同步、秘密身份验证凭据及其工作原理的更多信息,请选择以下选项:

数据源连接器会自动检测并抓取文档或内容的所有主要元数据字段。例如,数据源连接器可以抓取与您的文档等效的文档正文、文档标题、文档创建或修改日期或其他可能适用于您的文档的核心字段。

重要

如果您的内容包含敏感信息,则 Amazon Bedrock 可以使用敏感信息进行响应。

您可以包含或排除对某些内容的抓取。例如,您可以指定排除前缀/正则表达式模式,以跳过对文件名中包含 “private” 的任何文件的抓取。您也可以指定包含前缀/正则表达式模式以包含某些内容实体或内容类型。如果您指定了 “包含” 和 “排除” 筛选器,并且两者都与文档匹配,则排除过滤器优先,并且不会对文档进行抓取。

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

  • Space: 唯一的空格键

  • Page: 主页标题

  • Blog: 主博客标题

  • Comment: 评论标题

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

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

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

重要

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

(如果使用基本身份验证)您的秘密身份验证凭据 AWS Secrets Manager 应包含以下键值对:

  • username: Atlassian 账户的管理员用户电子邮件地址

  • password: Confluence API 令牌

(如果使用 OAuth 2.0 身份验证)您的秘密身份验证凭据 AWS Secrets Manager 应包含以下键值对:

  • confluenceAppKey: 应用程序密钥

  • confluenceAppSecret: 应用密钥

  • confluenceAccessToken: 应用程序访问令牌

  • confluenceRefreshToken: 应用程序刷新令牌

注意

Confluence OAuth2.0 访问令牌的默认到期时间为 60 分钟。如果此令牌在您的数据源同步(同步任务)时过期,Amazon Bedrock 将使用提供的刷新令牌来重新生成此令牌。此重新生成会刷新访问令牌和刷新令牌。为了将令牌从当前同步任务更新到下一个同步任务,Amazon Bedrock 要求您的秘密证书具有写入/放置权限,这是您的知识库 IAM 角色的一部分。

注意

您的密钥 AWS Secrets Manager 必须使用知识库的相同区域。

Console

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

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

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

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

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

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

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

      注意

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

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

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

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

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

    2. 提供您的 Confluence 实例网址/网址。例如,对于 Confluence Cloud,https://example.atlassian.net。Confluence Cloud 的网址必须是基本网址,以.atlassian.net 结尾。

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

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

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

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

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

    • 删除:删除知识库或数据源资源后,从矢量存储中删除属于该数据源的所有数据。请注意,底层向量存储本身不会被删除,只会删除数据。如果删除了 AWS 帐户,则会忽略此标志。

    • 保留:删除知识库或数据源资源后,保留矢量存储中的所有数据。

    继续配置您的数据源。

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

    1. 要进行基本身份验证,请转 AWS Secrets Manager 至添加您的密钥身份验证凭据,然后选择刷新按钮以应用密钥。您的密钥必须包含 Atlassian 账户的管理员用户电子邮件地址作为用户名,并包含 Confluence API 令牌来代替密码。有关如何创建 Confluence API 令牌的信息,请参阅 Atlassian 网站上的管理您的 Atlassian 账户的 API 令牌

    2. 对于 OAuth 2.0 身份验证,请转 AWS Secrets Manager 至添加您的密钥身份验证凭据,然后选择刷新按钮以应用密钥。您的密钥必须包含 Confluence 应用程序密钥、应用程序密钥、访问令牌和刷新令牌。有关更多信息,请参阅 Atlassian 网站上的 OAuth 2.0 应用程序

    继续配置您的数据源。

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

    继续配置您的数据源。

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

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

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

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

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

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

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

      注意

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

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

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

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

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

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

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

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

    注意

    创建知识库所需的时间取决于您采集的数据量和您的特定配置。知识库创建完成后,知识库的状态将更改为 “就”。

    知识库准备就绪或完成创建后,无论何时您想让内容保持最新状态,都可以首次同步数据源。在控制台中选择您的知识库,然后在数据源概述部分中选择同步

API

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

AWS Command Line Interface

aws bedrock create-data-source \ --name "Confluence Cloud/SaaS connector" \ --description "Confluence Cloud/SaaS data source connector for Amazon Bedrock to use content in Confluence" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://confluence-bedrock-connector-configuration.json \ --data-deletion-policy "DELETE" \ --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}' confluence-bedrock-connector-configuration.json { "confluenceConfiguration": { "sourceConfiguration": { "hostUrl": "https://example.atlassian.net", "hostType": "SAAS", "authType": "OAUTH2_CLIENT_CREDENTIALS", "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Confluence" }, "crawlerConfiguration": { "filterConfiguration": { "type": "PATTERN", "patternObjectFilter": { "filters": [ { "objectType": "Attachment", "inclusionFilters": [ ".*\\.pdf" ], "exclusionFilters": [ ".*private.*\\.pdf" ] } ] } } } }, "type": "CONFLUENCE" }