亚马逊肯德拉 是一种由机器学习 (ML) 提供支持的高度准确且易于使用的智能搜索服务。 Amazon Kendra 提供了一套数据源连接器来简化您的内容的摄取和索引过程,无论它位于何处。
组织中的有价值数据存储在结构化和非结构化存储库中。 企业搜索解决方案应该能够将多个结构化和非结构化存储库中的数据汇集在一起,以进行索引和搜索。
Dropbox 就是这样一种数据存储库。 企业用户使用 Dropbox 将文档上传、传输和存储到云端。 除了存储文档的功能外,Dropbox 还提供 Dropbox Paper,这是一种协同编辑工具,可让用户在一个地方协作和创建内容。 Dropbox Paper 可以选择使用模板为文档添加结构。 除了文件和纸张,Dropbox 还允许您在文件夹中存储网页的快捷方式。
我们很高兴地宣布,您现在可以使用 Dropbox 的 Amazon Kendra 连接器来搜索存储在您的 Dropbox 帐户中的信息。 在这篇文章中,我们将展示如何对存储在 Dropbox 中的信息进行索引,以及如何使用 Amazon Kendra 智能搜索功能。 此外,Amazon Kendra 的 ML 支持的智能搜索可以准确地从具有自然语言叙述内容的非结构化文档中查找信息,而关键字搜索对这些文档的效果不是很好。
解决方案概述
借助 Amazon Kendra,您可以配置多个数据源,以提供一个在您的文档存储库中进行搜索的中心位置。 对于我们的解决方案,我们演示了如何使用适用于 Dropbox 的 Amazon Kendra 连接器来索引 Dropbox 存储库或文件夹。 该解决方案包括以下步骤:
- 在 Dropbox 上配置应用并获取连接详细信息。
- 将详细信息存储在 AWS机密管理器.
- 通过 Amazon Kendra 控制台创建 Dropbox 数据源。
- 为 Dropbox 存储库中的数据编制索引。
- 运行示例查询以获取信息。
先决条件
要试用适用于 Dropbox 的 Amazon Kendra 连接器,您需要以下内容:
配置 Dropbox 应用并收集连接详细信息
在设置 Dropbox 数据源之前,我们需要一些有关 Dropbox 存储库的详细信息。 让我们提前收集这些。
- 在MyCAD中点击 软件更新 www.dropbox.com/developers.
- 应用程序控制台.
- 使用您的凭据登录(确保您登录的是企业帐户)。
- 创建应用.
- 选择 范围访问.
- 选择 完整的保管箱 (或您要索引的特定文件夹的名称)。
- 输入您的应用程序的名称。
- 创建应用.
您可以看到带有一组选项卡的配置屏幕。 - 要设置权限,请选择 权限 标签。
- 选择一组最小权限,如以下屏幕截图所示。
- 提交.
将出现一条消息,说明权限更改成功。 - 点击 个人设置 选项卡,复制应用程序密钥。
- 展示 旁边 应用程式机密 并复制秘密。
- 下 生成的访问令牌,选择 产生 并复制令牌。
将这些值存储在安全的地方——我们稍后需要参考这些值。
会话令牌的有效期最长为 4 小时。 每次索引内容时都必须生成一个新的会话令牌。
在 Secrets Manager 中存储 Dropbox 凭据
要将您的 Dropbox 凭据存储在 Secrets Manager 中,请执行以下步骤:
- 在Secrets Manager控制台上,选择 储存新秘密.
- 其他类型的秘密.
- 创建三个键值对
appKey
,appSecret
及refreshToken
并输入从 Dropbox 保存的值。 - 保存.
- 针对 秘密名称,输入名称(例如,
AmazonKendra-dropbox-secret
). - 输入可选描述。
- 下一页.
- 在 配置轮换 部分,将所有设置保留为默认值并选择 下一页.
- 点击 评论 页面,选择 线上商城.
为 Dropbox 配置 Amazon Kendra 连接器
要配置 Amazon Kendra 连接器,请完成以下步骤:
- 在Amazon Kendra控制台上,选择 创建一个索引.
- 针对 索引名称,输入索引的名称(例如,
my-dropbox-index
). - 输入可选描述。
- 针对 角色名称,输入 IAM 角色名称。
- 配置可选的加密设置和标签。
- 下一页.
- 在 配置用户访问控制 部分,将设置保留为默认值并选择 下一页.
- 针对 预配版本, 选择 开发者版.
- 创建.
这将创建并传播 IAM 角色,然后创建 Amazon Kendra 索引,这可能需要 30 分钟。 - 资料来源 在导航窗格中。
- 下 Dropbox,选择 添加连接器.
- 针对 资料来源名称,输入名称(例如,
my-dropbox-connector
). - 输入可选描述。
- 下一页.
- 针对 身份验证令牌的类型, 选择 访问令牌(临时使用).
- 针对 AWS Secrets Manager 密钥,选择您之前创建的密钥。
- 针对 IAM角色,选择 创建一个新角色.
- 针对 角色名称,输入名称(例如,
AmazonKendra-dropbox-role
). - 下一页.
- 针对 选择实体或内容类型,选择您的内容类型。
- 针对 频率,选择 按需运行.
- 下一页.
- 设置任何可选字段映射并选择 下一页.
- 查看并创建 并选择 添加数据源.
- 立即同步.
- 等待同步完成。
测试解决方案
现在您已将 Dropbox 帐户中的内容提取到 Amazon Kendra 索引中,您可以测试一些查询。
转到您的索引并选择 搜索索引内容. 输入示例搜索查询并测试您的搜索结果(您的查询将根据您帐户的内容而有所不同)。
Dropbox 连接器还从 Dropbox 抓取本地身份信息。 对于用户,它将用户电子邮件 ID 设置为主体。 对于组,它将组 ID 设置为主体。 要按用户/组过滤搜索结果,请转到 Search Console。
点击 ”使用用户名或组测试查询” 将其展开并单击“应用用户名或组“。
输入用户和/或组名并单击 使用. 接下来,输入搜索查询并按 Enter。 这会根据您的标准为您带来一组过滤的结果。
恭喜! 您已成功使用 Amazon Kendra 根据从您的 Dropbox 帐户编入索引的内容提供答案和见解。
为离线访问生成永久令牌
本文中的说明将引导您完成创建、配置和使用临时访问令牌的过程。 应用程序还可以通过请求离线访问来获得长期访问权限,在这种情况下,应用程序会收到一个刷新令牌,该令牌可用于根据需要检索新的短期访问令牌,而无需进一步的手动用户干预。 您可以在 Dropbox OAuth 指南 和 Dropbox 授权文件. 使用以下步骤创建永久刷新令牌(例如,将同步设置为按计划触发):
- 像以前一样获取应用密钥和应用秘密。
- 在新浏览器中,导航到
https://www.dropbox.com/oauth2/authorize?token_access_type=offline&response_type=code&client_id=
. - 接受默认值并选择 提交.
- 继续.
- 让.
为您生成访问代码。 - 复制访问代码。
现在您从访问代码中获取刷新令牌。 - 在终端窗口中,运行以下 curl 命令:
您可以将此刷新令牌与应用程序密钥和应用程序密钥一起存储,以在 Amazon Kendra 的数据源配置中配置永久令牌。 Amazon Kendra 生成访问令牌并根据需要使用它进行访问。
限制
此解决方案具有以下限制:
- 文件注释未导入索引
- 您没有为 Dropbox 添加自定义元数据的选项
- Google 文档、表格和幻灯片需要 Google 工作区或 Google 帐户,并且不包括在内
结论
借助适用于 Amazon Kendra 的 Dropbox 连接器,组织可以使用由 Amazon Kendra 提供支持的智能搜索安全地访问存储在其帐户中的信息存储库。
在这篇文章中,我们向您介绍了基础知识,但还有许多我们没有介绍的附加功能。 例如:
- 您可以为您的 Amazon Kendra 索引启用基于用户的访问控制,并限制对您配置的用户和组的访问
- 您可以指定
allowedUsersColumn
和allowedGroupsColumn
因此您可以分别基于用户和组应用访问控制 - 您可以将其他字段映射到 Amazon Kendra 索引属性,并启用它们以进行分面、搜索和显示在搜索结果中
- 您可以将 Dropbox 数据源与 Amazon Kendra 中的自定义文档丰富 (CDE) 功能集成,以在提取期间执行其他属性映射逻辑甚至自定义内容转换
要了解这些可能性及更多信息,请参阅 Amazon Kendra 开发人员指南.
关于作者
阿什·拉格万卡 是 AWS 的高级企业解决方案架构师。 他的核心兴趣包括 AI/ML、无服务器和容器技术。 Ashish 居住在马萨诸塞州波士顿地区,喜欢阅读、户外活动以及与家人共度时光。