将知识库连接到 Microsoft SharePoint - Amazon Bedrock

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

将知识库连接到 Microsoft SharePoint

Microsoft SharePoint 是一项基于 Web 的协作服务,用于处理文档、网页、网站、列表等。您可以使用适用于 Amazon Bedrock 的 AWS 管理控制台CreateDataSource API 连接到 SharePoint 实例,来为 Amazon Bedrock 知识库摄取内容(请参阅 Amazon Bedrock 支持的 SDK 和 AWS CLI)。

注意

SharePoint 数据来源连接器目前为预览版,可能随时发生变化。

Microsoft SharePoint 数据来源不支持多模态数据,例如表、曲线图、图表或其他图像。

Amazon Bedrock 支持连接 SharePoint Online 实例。目前不支持爬取 OneNote 文档。目前,只有 Amazon OpenSearch 无服务器向量存储可用于此数据来源。

对可爬取的文件数和文件的 MB 数是有限制的。请参阅 Quotas for knowledge bases

支持的特征

  • 自动检测主要文档字段

  • 包含/排除内容筛选条件

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

  • 仅限 SharePoint 应用程序的身份验证

先决条件

SharePoint(Online)

在 SharePoint(Online)中,要使用 SharePoint 仅限应用程序身份验证,请完成以下步骤:

  • 记下您的 SharePoint Online 网站 URL。例如,https://yourdomain.sharepoint.com/sites/mysite。您的 URL 必须以 https 开头并包含 sharepoint.com。您的网站 URL 必须是实际的 SharePoint 网站,而不是 sharepoint.com/sites/mysite/home.aspx

  • 记下 SharePoint Online 实例 URL 的域名。

  • 复制您的 Microsoft 365 租户 ID。您可以在 Microsoft Entra 管理门户的“属性”中找到租户 ID。有关详细信息,请参阅查找您的 Microsoft 365 租户 ID

    注意

    有关示例应用程序,请参阅 Microsoft Learn 网站上的在 Microsoft Entra ID 中注册客户端应用程序(Microsoft Entra ID 以前称为 Azure Active Directory)。

  • 配置 SharePoint 仅限应用程序凭证。

  • 授予对 SharePoint 仅限应用程序的权限时,请复制客户端 ID 和客户端密钥值。有关更多信息,请参阅使用 SharePoint 仅限应用程序授予访问权限

    注意

    您无需为 SharePoint 仅限应用程序设置任何 API 权限。但是,您必须在 SharePoint 端配置应用程序权限。有关所需应用程序权限的更多信息,请参阅 Microsoft 关于通过 SharePoint 仅限应用令牌授予访问权限的文档。

AWS 账户

在 AWS 账户中,请确保

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

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

注意

如果使用的是控制台,则可以前往 AWS Secrets Manager 添加密钥或在配置数据来源时使用现有密钥。您可以在控制台中创建知识库时创建具有所有必需权限的 IAM 角色。配置数据来源和其他配置后,具有所有必需权限的 IAM 角色将应用于特定知识库。

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

连接配置

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

本部分包含此数据来源的配置示例。

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

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

重要

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

您可以对元数据字段应用筛选运算符,以帮助您进一步提高响应的相关性。例如,文档“epoch_modification_time”或文档在 1970 年 1 月 1 日最后一次更新之后经历的秒数。您可以通过将“epoch_modification_time”设置为大于某个数值,筛选出最新的数据。有关可以应用于元数据字段的筛选运算符的更多信息,请参阅元数据和筛选

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

排除或筛选掉文件名中包含“private”的 PDF 文件的正则表达式模式示例:".*private.*\\.pdf"

您可以对以下内容类型应用包含/排除筛选条件:

  • Page:主页标题

  • Event:事件名称

  • File:附件和所有文档文件的文件名及其扩展名

目前不支持爬取 OneNote 文档。

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

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

重要

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

如果使用 SharePoint 仅限应用程序身份验证,您在 AWS Secrets Manager 中的密钥身份验证凭证应包含以下键值对:

  • clientId与您的 Microsoft Entra SharePoint 应用程序关联的客户端 ID

  • clientSecret与您的 Microsoft Entra SharePoint 应用程序关联的客户端密钥

  • sharePointClientId在您为仅限应用程序身份验证注册 SharePoint 应用程序时,系统生成的客户端 ID

  • sharePointClientSecret在您为仅限应用程序身份验证注册 SharePoint 应用程序时,系统生成的客户端密钥

注意

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

Console
将 SharePoint 实例连接到知识库
  1. 按照在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库中的步骤操作,然后选择 SharePoint 作为数据来源。

  2. 提供数据来源的名称和(可选的)描述。

  3. 提供 SharePoint 网站 URL。例如,对于 SharePoint Online:https://yourdomain.sharepoint.com/sites/mysite。您的 URL 必须以 https 开头并包含 sharepoint.com。您的网站 URL 必须是实际的 SharePoint 网站,而不是 sharepoint.com/sites/mysite/home.aspx

  4. 提供 SharePoint 实例的域名。

  5. 高级设置部分,您可以选择进行以下配置:

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

    • 数据删除策略 – 您可以删除数据来源的向量嵌入(这些向量嵌入默认存储在向量存储中),也可以选择保留向量存储数据。

  6. 提供身份验证信息以连接 SharePoint 实例。对于 SharePoint 仅限应用程序身份验证:

    1. 提供租户 ID。您可以在 Azure Active Directory 门户的“属性”中找到租户 ID。

    2. 转到 AWS Secrets Manager 来添加密钥身份验证凭证,或使用您创建的密钥的现有 Amazon 资源名称(ARN)。您的密钥必须包含生成的 SharePoint 客户端 ID 和 SharePoint 客户端密钥(在租户级别或站点级别注册“仅限应用程序”时生成),以及 Entra 客户端 ID 和 Entra 客户端密钥(在 Entra 中注册应用程序时生成)。

  7. (可选)在内容解析和分块部分,您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息,请参阅以下资源:

  8. 选择使用筛选条件/正则表达式模式来包含或排除某些内容。否则,会爬取所有标准内容。

  9. 继续选择嵌入模型和向量存储。要查看剩余步骤,请在连接数据来源后返回在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库,然后继续执行该步骤。

API

以下是 Amazon Bedrock 知识库连接到 SharePoint Online 的配置示例。您可以使用 AWS CLI 或支持的 SDK(例如 Python)通过 API 来配置数据来源。调用 CreateKnowledgebase 后,您可以调用 CreateDataSource 来使用 dataSourceConfiguration 中的连接信息创建数据来源。

要了解可以通过添加可选的 vectorIngestionConfiguration 字段来应用于摄取的定制设置,请参阅自定义数据来源的摄取

AWS Command Line Interface

aws bedrock-agent create-data-source \ --name "SharePoint Online connector" \ --description "SharePoint Online data source connector for Amazon Bedrock to use content in SharePoint" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://sharepoint-bedrock-connector-configuration.json \ --data-deletion-policy "DELETE"

的内容sharepoint-bedrock-connector-configuration.json

{ "sharePointConfiguration": { "sourceConfiguration": { "tenantId": "888d0b57-69f1-4fb8-957f-e1f0bedf64de", "hostType": "ONLINE", "domain": "yourdomain", "siteUrls": [ "https://yourdomain.sharepoint.com/sites/mysite" ], "authType": "OAUTH2_SHAREPOINT_APP_ONLY_CLIENT_CREDENTIALS", "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-SharePoint" }, "crawlerConfiguration": { "filterConfiguration": { "type": "PATTERN", "patternObjectFilter": { "filters": [ { "objectType": "File", "inclusionFilters": [ ".*\\.pdf" ], "exclusionFilters": [ ".*private.*\\.pdf" ] } ] } } } }, "type": "SHAREPOINT" }
重要

建议不要使用 OAuth2.0 身份验证,而是使用 SharePoint 仅限应用程序身份验证。

使用 OAuth 2.0,您可以对与知识库集成的 SharePoint 连接器的 SharePoint 资源进行身份验证和授权。

先决条件

在 SharePoint 中,对于 OAuth 2.0 身份验证,请确保

  • 记下您的 SharePoint Online 网站 URL。例如,https://yourdomain.sharepoint.com/sites/mysite。您的 URL 必须以 https 开头并包含 sharepoint.com。您的网站 URL 必须是实际的 SharePoint 网站,而不是 sharepoint.com/sites/mysite/home.aspx

  • 记下 SharePoint Online 实例 URL 的域名。

  • 复制您的 Microsoft 365 租户 ID。在 Microsoft Entra 门户的“属性”或 OAuth 应用程序中,可以找到您的租户 ID。

    记下管理员 SharePoint 账户的用户名和密码,并在注册应用程序时复制客户端 ID 和客户端密钥值。

    注意

    有关示例应用程序,请参阅 Microsoft Learn 网站上的在 Microsoft Entra ID 中注册客户端应用程序(Microsoft Entra ID 以前称为 Azure Active Directory)。

  • 注册应用程序时,需要具有某些读取权限才能连接到 SharePoint。

    • SharePoint:AllSites.Read(委托)– 读取所有网站集合的项目

  • 您可能需要使用管理员用户在 Azure 门户中停用安全默认值。有关在 Azure 门户中管理安全默认设置的更多信息,请参阅 Microsoft 关于如何启用/禁用安全默认设置的文档

  • 您可能需要停用 SharePoint 账户中的多重身份验证(MFA),这样就不会阻止 Amazon Bedrock 爬取您的 SharePoint 内容。

要完成先决条件,请确保您已完成AWS 账户 中的步骤。

密钥身份验证凭证

对于 OAuth2.0 的连接配置,您可以执行与自动检测主文档字段、包含/排除筛选条件和增量同步相同的步骤,如连接配置中所述。

对于 OAuth 2.0 身份验证,您在 AWS Secrets Manager 中的密钥身份验证凭证应包含以下键值对:

  • usernameSharePoint admin username

  • passwordSharePoint admin password

  • clientIdOAuth 应用程序客户端 ID

  • clientSecretOAuth 应用程序客户端密钥

将 SharePoint 实例连接到知识库

使用 OAuth2.0 将 SharePoint 实例连接到知识库:

  • (控制台)在控制台中,按照将 SharePoint 实例连接到知识库中所述的相同步骤进行操作。在您需要提供身份验证信息以连接 SharePoint 实例时:

    • 提供租户 ID。您可以在 Azure Active Directory 门户的“属性”中找到租户 ID。

    • 转到 AWS Secrets Manager 来添加密钥身份验证凭证,或使用您创建的密钥的现有 Amazon 资源名称(ARN)。您的密钥必须包含 SharePoint 管理员用户名和密码,以及您注册的应用程序客户端 ID 和客户端密钥。有关示例应用程序,请参阅 Microsoft Learn 网站上的在 Microsoft Entra ID 中注册客户端应用程序(Microsoft Entra ID 以前称为 Azure Active Directory)。

  • (API)以下示例使用 CreateDataSource API,创建包含您的 OAuth2.0 连接信息的数据来源。

    aws bedrock-agent create-data-source \ --name "SharePoint Online connector" \ --description "SharePoint Online data source connector for Amazon Bedrock to use content in SharePoint" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://sharepoint-bedrock-connector-configuration.json \ --data-deletion-policy "DELETE"

    的内容sharepoint-bedrock-connector-configuration.json

    { "sharePointConfiguration": { "sourceConfiguration": { "tenantId": "888d0b57-69f1-4fb8-957f-e1f0bedf64de", "hostType": "ONLINE", "domain": "yourdomain", "siteUrls": [ "https://yourdomain.sharepoint.com/sites/mysite" ], "authType": "OAUTH2_CLIENT_CREDENTIALS", "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-SharePoint" }, "crawlerConfiguration": { "filterConfiguration": { "type": "PATTERN", "patternObjectFilter": { "filters": [ { "objectType": "File", "inclusionFilters": [ ".*\\.pdf" ], "exclusionFilters": [ ".*private.*\\.pdf" ] } ] } } } }, "type": "SHAREPOINT" }