为 Amazon Q Business 部署 Slack 网关 机器学习博客

部署 Slack 网关以适用于 Amazon Q 业务

作者 Gary Benattar Harshavardhan Malipatel James Jory 和 Bob Strahan日期 2024年1月9日分类 人工智能,客户解决方案

关键要点

Amazon Q 是一款新的生成式AI应用,帮助用户安全高效地完成工作。本文将引导您如何在Slack中使用Amazon Q与用户互动。通过Slack,您可以与Amazon Q对话,获取与公司数据相关的答案,生成新内容,并处理附件文件。

注意 如果您在2024年4月30日之后创建了新的Amazon Q业务应用,您需要设置Okta、IAM身份中心和Slack网关来进行集成。GitHub 代码库也已根据最新要求进行了更新。

Amazon Q可以帮助您发现内容、头脑风暴、或使用公司的数据安全地创建摘要。它支持用户通过对话、解决问题、生成内容、获取见解等多种方式与公司的信息资产连接。

本文将展示如何将Amazon Q应用到Slack中。使用Slack的用户可以彼此间添加Amazon Q作为对话助手如若使用Microsoft Teams,请参考为Amazon Q业务部署Microsoft Teams网关。

您可以通过Slack的直接消息(DM)与Amazon Q进行交流,询问问题、创建新的内容,如撰写邮件草稿,处理附件文件并执行任务。

可以邀请Amazon Q参加团队渠道。在频道中,用户可以在新消息中询问问题,或在现有讨论中标记它,以提供附加数据点、解决争论或总结对话并记录后续步骤。值得注意的是,使用Amazon Q在团队渠道中时,频道内的所有用户都能看到Amazon Q的回答。因此,如果您的Amazon Q应用有受限内容,您需要考虑在Slack中启用该应用的影响。

解决方案概述

Amazon Q的强大功能无法被忽视,下面的视频演示表明了它的多种可能性。

为 Amazon Q Business 部署 Slack 网关 机器学习博客

在演示中,我们的Amazon Q应用被填充了AWS白皮书的集合。您也可以用公司文档和知识库文章填充自己的Amazon Q业务应用,使其能回答您的问题!

所有您需要的资源都作为开源在我们的GitHub代码库中提供。

在本文中,我们将指导您如何在AWS账户中部署Amazon Q并将其添加到Slack工作区。完成后,您会想知道在没有它的情况下是如何进行工作的!

以下是Amazon Q可以执行的一些任务:

响应消息 在DM中,它会响应所有消息;在频道中,仅对@提及做出响应,并在对话线程中回答。渲染包含Markdown的答案 包括标题、列表、粗体、斜体、表格等。追踪情感 它提供点赞和点踩按钮以追踪用户情感反馈。提供源引用 提供Amazon Q使用的源的参考和超链接。理解对话上下文 跟踪对话并根据上下文做出响应。处理多个用户的互动 在讨论中标记时,了解是谁说了什么,何时说,以便准确总结讨论。处理附件文件 可以处理最多五个附件文件,用于问答、摘要等。启动新对话 您可以在DM频道使用/newconversation重置并开始新的对话。

在接下来的部分中,我们将展示如何将项目部署到您的AWS账户和Slack工作区,并开始实验!

准备工作

部署此演示解决方案需要以下先决条件:

需要一个AWS账户和具有权限创建和管理必要资源及组件的身份与访问管理IAM角色和用户。您需要一个Okta Workforce Identity Cloud账户。如果尚未注册,请参考注册Okta。需要和Okta及IAM身份中心一起配置SAML和SCIM。如果还没有配置,请参考与Okta及IAM身份中心配置SAML和SCIM。您需要已有一个工作中的Amazon Q业务应用。如果尚未设置,请参考创建Amazon Q应用。您需要有用户订阅您的Amazon Q业务应用,并能够访问Amazon Q Web体验。如果尚未订阅用户,请参考为Amazon Q应用订阅用户。最后,您需要一个Slack账户,并能够在您的Slack组织中创建和发布应用。如果没有,请与您的公司协作创建一个Slack沙箱组织以供实验,或者访问slackcom创建一个免费的Slack账户和工作区。

1 设置Okta和IAM身份中心

11 在Okta中为Slack网关创建OIDC应用集成

在Okta中创建应用集成为“Web应用”,并将OIDC作为登录方法。

给您的应用命名并启用刷新令牌授权类型。

对于受控访问,启用允许组织中的每个人都可以访问,确保联合代理模式也已启用。

保持其他字段为默认值,我们将在稍后在步骤3更新重定向URI。选择保存以创建应用。

12 在IAM身份中心中创建受信任的令牌发放者

创建受信任的令牌发放者,以信任您在Okta应用中生成的令牌。要获取OIDC发行者URL,请访问Okta账户控制台,选择API下的安全性,然后复制整个发行者URI。

按照使用与受信任的令牌发放者的应用的指南,在AWS控制台中配置受信任的令牌发放者。或者,您可以运行代码库中包含的脚本,使用GitHub代码库中的脚本。运行该脚本需要OIDC发行者URL和您创建的Amazon Q业务应用所在的AWS区域。

将您的区域和OIDC发行者URL替换如下占位符。

bash export AWSDEFAULTREGION=ltYOURREGIONHEREgt OIDCISSUERURL=ltYOUROIDCISSUERHEREgt bin/createtrustedtokenissuersh OIDCISSUERURL

该脚本将输出受信任的令牌发放者ARN (TTIARN),您将在下一步中使用。

13 在IAM身份中心中创建客户管理应用

接下来,通过运行以下脚本创建IAM身份中心中的客户管理应用,该脚本同样包含在GitHub代码库中。此脚本需要OIDC客户端ID、受信任的令牌发放者ARN和您创建的Amazon Q业务应用对应的AWS区域。

要检索OIDC客户端ID,请访问Okta账户控制台,选择应用程序下的应用程序菜单,点击您在步骤11中创建的应用。

复制客户端ID。对于TTIARN,您可以使用上一步的输出。将您的区域、客户端ID和TTI ARN替换如下占位符。

bash export AWSDEFAULTREGION=ltYOURREGIONHEREgt OIDCCLIENTID=ltYOUROIDCCLIENTIDHEREgt TTIARN=ltYOURTTIARNHEREgt bin/createidcapplicationsh OIDCCLIENTID TTIARN

该脚本将输出网关IDC应用ARN (GATEWAYIDCARN),您在下一步中将用到。

2 部署解决方案资源

我们提供了预构建的AWS CloudFormation模板,可在AWS账户中部署所需的一切。

如果您是开发人员,并希望从代码构建、部署或发布该解决方案,请参考开发者自述文件。

蓝鲸加速器加速

完成以下步骤以启动CloudFormation堆栈:

登录到AWS管理控制台。选择以下启动堆栈按钮之一,根据您期望的AWS区域打开AWS CloudFormation控制台并创建新的堆栈。输入以下参数堆栈名称 给您的应用命名,例如 AMAZONQSLACKGATEWAY。AmazonQAppId 您现有的Amazon Q应用ID从Amazon Q Business控制台复制。AmazonQRegion 选择创建Amazon Q Business应用的区域useast1或uswest2。OIDCIdPName OIDC外部身份提供者的名称。指定‘Okta’。Cognito也受支持。OIDCClientId 您在步骤11中创建的OIDC客户端的客户端ID。OIDCIssuerURL 您在步骤11中创建的OIDC客户端的发行者URL。GatewayIdCAppARN 您在步骤13中创建的IdC客户管理应用的ARN。ContextDaysToLive 用于缓存对话元数据的时间长度您可以保持默认值。区域启动堆栈北弗吉尼亚 (useast1)俄勒冈州 (uswest2)

当您的CloudFormation堆栈状态为CREATECOMPLETE时,请选择输出标签并保持打开状态您将在后续步骤中需要它。

3 更新OIDC客户端重定向URI

在刚刚部署的CloudFormation堆栈的输出标签中,查找以OIDCCallbackEndpointExportedName结尾的输出参数,并将其值复制到剪贴板。然后在另一个浏览器选项卡/窗口中打开Okta管理面板,进入您在步骤11中创建的Okta应用,向下滚动到常规设置部分并选择编辑。将回调端点URL粘贴到登录重定向URI字段中,然后选择保存。

4 配置您的Slack应用

41 创建您的应用

现在您可以在Slack中创建您的应用。请完成以下步骤:

在上一步的CloudFormation输出标签中,查找键名为SlackAppManifest的输出参数,并将整个值复制到剪贴板。该值应为一块JSON。在https//apislackcom/apps选择从应用清单创建应用。用剪贴板上的JSON替换占位符部分。点击下一步和创建以创建Slack应用。从导航窗格中选择功能,向下滚动到显示标签部分。启用消息标签,并勾选“允许用户从消息标签发送斜杠命令和消息”。这一步是支持用户与您的应用发送消息的必要条件。

42 将您的应用添加到Slack工作区

接下来,让我们将您的应用添加到Slack工作区。这是生成Bot用户OAuth令牌值所需的步骤。

从apislackcom中,转到您的应用的OAuth amp 权限,然后点击安装到工作区,这将生成OAuth令牌。在Slack中,转到您的工作区。点击您的工作区名称,并在工具与设置下选择管理应用。这将打开您工作区的Slack应用目录的浏览器窗口。点击您新创建的应用。在右侧面板中,点击在应用目录中打开。点击在Slack中打开。

43 在AWS Secrets Manager中配置Slack和OIDC密钥

让我们在AWS Secrets Manager中配置Slack和Okta OIDC密钥,以验证每个请求的签名,并代表您的Amazon Q机器人发布。

在这个例子中,我们没有启用Slack令牌轮换。您可以为生产应用实现轮换功能,通过AWS Secrets Manager完成这一操作。如果您希望在未来版本中添加此功能,请在GitHub代码库中创建问题或更好的是,提交拉取请求。

完成以下步骤以在Secrets Manager中配置Slack密钥:

在AWS CloudFormation控制台中,导航到您的堆栈输出标签,并点击链接 SlackSecretConsoleUrl,以重定向到Secrets Manager控制台。选择检索密钥值。选择编辑。使用在Slack应用配置中的基本信息和OAuth与权限下的值替换SlackSigningSecret和SlackBotUserOAuthToken的值。

请注意,不要意外复制客户端应用密钥而不是签名密钥。

接下来,配置OIDC客户端密钥以交换代码为token:

在AWS CloudFormation控制台中,导航到您的堆栈输出标签并点击OIDCClientSecretConsoleUrl的链接,以重定向到Secrets Manager。选择获取密钥值。选择编辑。使用步骤11中Okta应用客户端设置中的值替换OIDCClientSecret的值。

开始使用Amazon Q

完成以下步骤以开始在Slack中使用Amazon Q:

打开您的Slack工作区。在应用下,管理,添加您的新Amazon Q应用。可选地,将您的Amazon Q应用添加到团队频道中。在应用DM频道中输入Hello。

您现在已在您的Slack沙箱环境中部署了功能强大的新AI助手。

尽情体验,尝试本文中讨论的所有功能,复制您在演示视频中看到的内容。最重要的是,您可以询问与您自己的Amazon Q业务应用中已摄取的文档相关的主题。但别止于此。您可以找到更多有用的方法,当您做到时,请通过发布评论告诉我们。

一旦您确定它是多么有用,与您的Slack管理员讨论并向他们展示这篇文章,并与他们一起在公司的Slack工作区中部署。您的同事将对此表示感谢!

清理

在完成此解决方案的实验后,删除您在Slack中的应用https//apislackcom/apps,并通过打开AWS CloudFormation控制台删除您部署的AMAZONQSLACKGATEWAY堆栈,清理AWS资源。这将删除通过部署解决方案创建的资源。

结论

本文中讨论的Amazon Q Slack应用作为开源提供,您可以将其作为自己解决方案的起点,并通过提交GitHub拉取请求来改进它。探索代码,选择在GitHub代码库中关注以接收新版本的通知,并随时查看最新更新。我们也很希望听到您对改进和功能的建议。

有关Amazon Q的更多信息,请参阅Amazon Q是什么(商业用途)。

关于作者

![Gary Benattar](https//d2908q01

Falcon 2 11B 现已在 Amazon SageMaker JumpStart 上发布由 Supriya Puragundla Armando Diaz Avan Bala Farooq Sa...

从公共区块链查询交易确认信息重点总结在这篇文章中,我们将介绍Amazon Managed BlockchainAMBQuery的新功能,该功能使您能够在交易最终确认之前从公共区块链中获取数据。AMB ...