将 IBM WatsonX 数据与 Milvus 结合使用,构建用于知识检索的智能 Slack 机器人
在当今快节奏的工作环境中,快速轻松地访问信息对于保持生产力和效率至关重要。无论是在 Runbook 中查找特定说明,还是访问关键知识转移 (KT) 文档,快速检索相关信息的能力都可以产生重大影响。
本教程将指导您构建一个智能 Slack 机器人,该机器人利用 IBM WatsonX.data 和 Milvus 进行高效的知识检索。通过集成这些工具,您将创建一个机器人,该机器人可以根据组织的知识源搜索并提供查询的答案。我们将使用 IBM WatsonX.data 来填充和查询相关文档,并使用 IBM WatsonX.ai 来回答从获取的文档中提出的问题。
本教程分为两个主要部分:第一部分侧重于使用 IBM WatsonX Data 或开源 Milvus 填充数据库,第二部分介绍如何在本地运行 Python 程序以将机器人连接到 Slack,利用 WatsonX.ai 智能响应用户查询。
在本教程结束时,您将拥有一个功能齐全的 Slack 机器人,它可以增强您的团队访问和利用重要信息的能力,从而提高整体生产力。
先决条件
在开始之前,请确保您具备以下条件:
IBM Cloud 帐户:访问 IBM WatsonX.ai 和 WatsonX Data,用于知识检索和 AI 模型集成
Milvus 矢量数据库:熟悉 Milvus 存储和查询向量化数据的能力;您可以使用开源 Milvus 或 IBM 的托管 Milvus 服务。
Slack 工作区:在工作区中配置和部署 Slack 机器人的管理员访问权限
编程知识:精通 Python,包括 API 经验、使用云服务和处理环境变量的经验
第 1 步:设置 WatsonX.data 和 WatsonX 项目
设置 WatsonX.data
创建 IBM Cloud 帐户:如果您还没有帐户,请在 IBM Cloud 上注册。
创建 WatsonX.data 实例:在 IBM Cloud 目录中,通过选择计划并提供必要的详细信息来搜索并创建 WatsonX.data 实例。
设置 WatsonX 项目
创建 WatsonX 项目:在 IBM Cloud Dashboard 上,导航到 WatsonX 主页,然后在 capabilities 下启动 watsonx.ai。创建 Sandbox 项目。
获取项目 ID 和 URL:
达拉斯:
https://us-south.ml.cloud.ibm.com
伦敦:
https://eu-gb.ml.cloud.ibm.com
法兰克福:
https://eu-de.ml.cloud.ibm.com
东京:
https://jp-tok.ml.cloud.ibm.com
导航到 WatsonX 项目的 Manage 页面以找到 Project ID。
在您新创建的项目中,在“管理”选项卡下,选择左侧菜单上的“服务和集成”。
选择蓝色的“关联服务 +”按钮。从列表中选择可用的 “Watson Machine Learning” 服务名称。
确定与您的项目关联的 Watson Machine Learning 实例的 URL。此 URL 因创建 ML 实例的区域而异,格式如下:。
https://<region>.ml.cloud.ibm.com
第 2 步:设置 Milvus 服务器
您可以通过两种方式设置 Milvus 服务器:使用 IBM WatsonX.data 或开源 Milvus 数据库。
使用 IBM WatsonX.data 设置 Milvus
登录到 WatsonX.data 控制台。
导航到 Infrastructure Manager。
添加 Milvus 服务:
单击 Add component 并选择 Add service。
从 Type 列表中选择 Milvus。
配置 Milvus Service:
显示名称:填写 Milvus 服务名称。
添加存储桶:关联外部存储桶或为 Starter 大小选择 IBM 管理的存储桶。
配置 Milvus 服务:点击 配置。
创建到 Milvus 的数据源连接
在 WatsonX.ai 项目中:
在“资产”选项卡下,选择新建资产 +。
连接到数据源:
选择磁贴 Connect to a data source。
搜索 Milvus,然后单击 Select。
提供连接详细信息:
从 基础设施管理器 获取 Milvus 主机和端口信息(点击 Milvus 服务,打开 详情 页面)。
提供数据库名称和授权用户凭证以访问 Milvus 实例。
标题:输入连接的标题(例如,“Milvus 连接”)。
Milvus 主机名、端口、数据库名称、用户名和密码:
设置开源 Milvus Server
1. 为 Docker 分配额外的内存
通过 Docker 桌面设置将 Docker 内存增加到至少 8GB。
2. 下载 Docker Compose 配置
创建目录并下载 Docker Compose 文件:
mkdir milvus_compose
cd milvus_compose
wget https://github.com/milvus-io/milvus/releases/download/v2.2.8/milvus-standalone-docker-compose.yml -O docker-compose.yml
3. 使用 Docker Compose 运行 Milvus
启动 Milvus:
docker compose up -d
验证容器是否正在运行:
docker ps -a
检查 Milvus 服务器日志:
docker logs milvus-standalone
第 3 步:创建 Slack 应用程序
创建 Slack 应用程序
导航到 Slack API。
点击 “Create App” -> “From Scratch”。
提供 App name 并选择要在其中部署机器人的工作区。
在您的Slack应用程序设置下,导航到“OAuth和权限”。
单击“添加 OAuth 范围”,然后添加“channels:history”和“chat:write”作为机器人令牌范围。
获取 Token
从“OAuth & Permissions”获取。
SLACK_TOKEN
从 “基本信息” 中获取。
SIGNING_SECRET
第 4 步:设置项目并运行应用程序
克隆存储库并安装依赖项:
克隆存储库:
PowerShell
1
git clone https://github.com/PhaniDivi-613/doc-assistant
导航到项目目录并安装所需的模块:
PowerShell
1
cd doc-assistant
2
pip install -r requirements.txt
设置环境:
在项目目录中创建一个文件,并使用前面步骤中收集的以下值填充该文件:.env
PowerShell
1
PROJECT_ID=<Project ID>
2
PROJECT_URL=<Project URL>
3
IC_API_KEY=<IBM Cloud API Token>
4
SLACK_TOKEN=<Slack API Token>
5
SIGNING_SECRET=<Signing Secret>
使用 Runbook 填充数据库:
将所有 Runbook 或知识转移文档放在文件夹中。
knowledge_source
通过运行脚本填充数据库:
populate_db.py
PowerShell
1
python populate_db.py --opensource-milvus # Use this flag if using open-source Milvus
2
python populate_db.py # Use this if using IBM watsonx.data
运行 Python 应用并使用 ngrok 创建隧道:
启动 Python Flask 应用程序:
PowerShell
1
python3 app.py --opensource-milvus # If using open-source Milvus
2
python3 app.py # If using IBM watsonx.data
在新的终端窗口中,使用 :ngrok
PowerShell
1
ngrok http 8080
从终端输出中复制转发 URL。ngrok
更新 Slack 配置
在您的 Slack 应用程序设置中,导航到“事件订阅”。
使用您的 URL 更新“请求 URL”字段,后跟 .
ngrok
/events-endpoint
添加机器人用户事件:
message.channels
message.channels
保存 Slack 应用程序设置中的更改。
与您的应用程序交互
邀请您的机器人加入您希望它运行的 Slack 通道。
在 Slack 通道中,发送消息以触发机器人。例如:
@dev-assistant 如何使用 CLI 获取 atracker 帐户设置?等待机器人处理您的请求并生成响应。
结论
通过执行这些步骤,您已成功设置与 Milvus 数据库集成的 Slack 应用程序以进行知识管理。现在,您可以在 Slack 中与机器人交互,测试其功能,并体验其 AI 驱动的功能。此设置允许根据提供的 Runbook 和知识源进行高效的查询处理和智能响应。