构建基于Confluence的安全Slack聊天机器人指南

27 阅读5分钟

构建基于Confluence的安全Slack聊天机器人

随着生成式AI的兴起,将数据与AI服务集成变得前所未有的简单,但许多公司因信任问题而犹豫。核心关切在于AI服务是否能确保机密数据的安全。

如果你计划将AI集成到内部工具中,但又对安全风险持怀疑态度,本指南提供了全面的步骤,帮助你在自己的AWS环境中部署一个完全由你掌控和保护的、由AI驱动的聊天服务。

虽然建立此类解决方案通常需要专业知识,但本指南将引导你采用一种低代码的AWS方法,任何人无需具备先验专业知识或深入了解AWS服务即可跟随操作。

最终,你将拥有一个与Slack集成的、由Confluence知识库驱动的聊天服务,所有数据和组件都安全地存放在你自己的AWS账户中。

让我们开始吧!

你需要准备:

  • 一个具有管理员权限的AWS账户
  • 具有管理员权限的Slack Pro账户
  • 一个Confluence工作空间,必须具有空间访问权限(管理员权限可选)

配置Confluence

要设置Confluence,你需要准备以下详细信息:

  • 空间名称
  • Confluence邮箱
  • 访问令牌

获取访问令牌的步骤:

  1. 访问相关网站链接。
  2. 点击“创建API令牌”,选择过期日期,复制新生成的密钥,并将其保存在安全的地方。

配置Bedrock

确保你在AWS Bedrock中能够访问Nova Pro和Titan Text Embeddings V2 AI模型。

准备你的知识库(核心部分!)

在开始设置聊天服务之前,先为其准备大脑——知识库。此步骤有助于AWS安全地连接到你的Confluence数据,以便你的聊天服务在需要时能够获取准确且最新的信息。

步骤:

  1. 在AWS Secrets Manager中存储你的Confluence凭据 * 创建一个“其他类型的密钥”,将你的Confluence邮箱作为用户名,令牌作为密码。 * 为其命名,其余保持默认设置,并记下密钥ARN。ARN格式如下:arn:aws:secretsmanager:us-east-1:XXXXXXXXXXXX:secret:AmazonBedrock-confluence-xxxxx-yenhPh
  2. 在Bedrock中创建你的知识库
    • 前往Bedrock知识库,创建一个新的“带有向量存储的知识库”。
    • 在“数据”部分,选择“Confluence — 预览”。
    • 将Confluence配置为你的数据源:
      • 输入你的Confluence URL。
      • 使用你刚刚创建的密钥ARN作为凭据。
      • 如果需要,你还可以按特定的Confluence空间进行筛选。
    • 选择你的嵌入模型:
      • 对于数据存储,选择“Titan Text Embeddings V2”作为你的嵌入模型。
    • 查看并创建:
      • 快速浏览你的设置,大部分可以保持默认,然后点击“创建”。
      • 完成后,打开你的新知识库并记下其ID,以备后用。
  3. 前往“数据源”并点击“同步”。这需要一点时间。

你的AI知识库已准备就绪。

准备Slack

  1. 在Slack上访问“你的应用”(https://api.slack.com/apps)。
  2. 从头开始创建一个“新应用”。
  3. 为你的应用起一个酷炫的名字,并选择你的工作空间。
  4. 创建完成后,你需要生成一个Slack OAuth令牌:
    • 进入 OAuth & Permissions > Scopes。
    • 在 Bot Token Scopes 下添加 chat:writeim:history
  5. 在“OAuth Tokens”部分,点击“Install to <你的工作空间>”。
  6. 完成安装以获取你的OAuth令牌(可能以 xoxb- 开头)。

注意: 我们稍后将返回Slack进行最后的集成。

网关(你的Lambda函数)

在创建Lambda函数之前,先创建一个Lambda层:

  1. 转到Lambda层(https://console.aws.amazon.com/lambda/home?#/layers)。
  2. 创建一个层:命名为 slack_bot_layer,上传提供的.zip文件,并将兼容架构设置为arm64,运行时设置为Python 3.13。

现在,创建一个新的Lambda函数(https://console.aws.amazon.com/lambda/home?#/functions):

  1. 函数名称:slack_bot

  2. 运行时:Python 3.13

  3. 架构:arm64

  4. 执行角色:创建一个具有基本Lambda权限的新角色(稍后你将调整此角色)。

  5. 在“其他配置”中,将“身份验证类型”设置为“无”,并启用“配置跨源资源共享 (CORS)”。

  6. 创建后,将默认的Python代码替换为提供的代码并进行部署。

注意: 下面的代码及相关详细信息也可在此GitHub仓库中找到。

  1. 将你的 slack_bot_layer 添加到Lambda函数:
    • 从底部的“层”部分,点击“添加层”。
    • 选择“自定义层”,然后选择 slack_bot_layer
  2. 更新一些配置:
    • 进入“配置”选项卡,然后进入“常规配置”,将“超时”设置为30秒。
    • 添加Bedrock权限:打开分配给你的Lambda函数的IAM角色(在“权限”中找到),并附加 AmazonBedrockFullAccess 策略。
  3. 更新Lambda函数的环境变量:
    • 进入“配置选项卡” > “环境变量”。
    • 添加以下变量:
      • SLACK_BOT_TOKEN: 来自Slack设置的 xoxb- 令牌。
      • KB_ID: 你的知识库ID。
      • MODEL_ID: us.amazon.nova-pro-v1:0(适用于Nova Pro)。
  4. 复制Lambda函数URL(格式类似 https://gq6hvgxh*********.lambda-url.us-east-1.on.aws/)。

将Slack连接到你的机器人

  1. 进入你的Slack应用的“事件订阅”。
  2. 启用事件。
  3. 将“请求URL”设置为 {Lambda Function URL}/slack/events(例如,https://gq6hvgxh*********.lambda-url.us-east-1.on.aws/)。
  4. 订阅机器人事件:在“添加机器人用户事件”下添加 message.channelsmessage.groupsmessage.immessage.mpim
  5. 保存并重新安装应用。
  6. 启用消息传递:
    • 进入“应用主页” > “显示选项卡”。
    • 确保“消息选项卡”和“允许用户发送斜杠命令”已启用。

全部设置完成! 前往Slack,找到你的新机器人,给它发条消息吧!

准备好探索和扩展

整个设置使用低代码方法来连接Confluence和Slack。虽然这涵盖了基础知识,但你始终可以增强它以获得更高的安全性、成本效益和可靠性。你可以调整系统提示。

此外,如果Lambda部署让你头疼,还有CloudFormation堆栈和CDK脚本可用,可以让AWS端的事情变得更简单!该仓库还有一个支持更多功能(如后续问题)的Python代码。

本指南应该能帮助你启动并运行,即使你不是技术专家。请记住,你可以将这些想法应用到其他数据源(如网站、SharePoint或Salesforce)以及其他聊天客户端(如MS Teams或WhatsApp)。

祝你探索愉快!