将 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 经验、使用云服务和处理环境变量的经验

  • 495b5307023e251f8269ad7ef2fd010a.png

第 1 步:设置 WatsonX.data 和 WatsonX 项目

设置 WatsonX.data

  1. 创建 IBM Cloud 帐户:如果您还没有帐户,请在 IBM Cloud 上注册。

  2. 创建 WatsonX.data 实例:在 IBM Cloud 目录中,通过选择计划并提供必要的详细信息来搜索并创建 WatsonX.data 实例。

设置 WatsonX 项目

  1. 创建 WatsonX 项目:在 IBM Cloud Dashboard 上,导航到 WatsonX 主页,然后在 capabilities 下启动 watsonx.ai。创建 Sandbox 项目。

  2. e0e1f2ac390759f1f022f32c0134cbea.png

  3. 获取项目 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” 服务名称。

  • 2f51ae06a814641c74a939caca2ab4a5.png

  • 确定与您的项目关联的 Watson Machine Learning 实例的 URL。此 URL 因创建 ML 实例的区域而异,格式如下:。https://<region>.ml.cloud.ibm.com

第 2 步:设置 Milvus 服务器

您可以通过两种方式设置 Milvus 服务器:使用 IBM WatsonX.data 或开源 Milvus 数据库。

使用 IBM WatsonX.data 设置 Milvus

  1. 登录到 WatsonX.data 控制台。

  2. 导航到 Infrastructure Manager。

  3. 添加 Milvus 服务:

  • 单击 Add component 并选择 Add service

  • 从 Type 列表中选择 Milvusbe015137e71c858129ee1a8ac8e38335.png

配置 Milvus Service:

  • 显示名称:填写 Milvus 服务名称。

  • 添加存储桶:关联外部存储桶或为 Starter 大小选择 IBM 管理的存储桶。

配置 Milvus 服务:点击 配置

创建到 Milvus 的数据源连接
  1. 在 WatsonX.ai 项目中:

  • “资产”选项卡下,选择新建资产 +

连接到数据源:

  • 选择磁贴 Connect to a data source

  • 搜索 Milvus,然后单击 Select

  • 61b6bcbb15631bebc15dffa7e695507a.png

提供连接详细信息:

  • 从 基础设施管理器 获取 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”作为机器人令牌范围。

    fe4f047b30bf5301751bd0cfc787faf8.png

获取 Token

  1. “OAuth & Permissions”获取。SLACK_TOKEN

  2. 从 “基本信息” 中获取。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 填充数据库:

  1. 将所有 Runbook 或知识转移文档放在文件夹中。knowledge_source

  2. 通过运行脚本填充数据库: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

78d3004bfdeae5b2cf013e55febacaaf.png更新 Slack 配置

  1. 在您的 Slack 应用程序设置中,导航到“事件订阅”。

  2. 使用您的 URL 更新“请求 URL”字段,后跟 .ngrok/events-endpoint

  3. 添加机器人用户事件:

  • message.channels

  • message.channels

保存 Slack 应用程序设置中的更改。

与您的应用程序交互

  1. 邀请您的机器人加入您希望它运行的 Slack 通道。

  2. 在 Slack 通道中,发送消息以触发机器人。例如:
    @dev-assistant 如何使用 CLI 获取 atracker 帐户设置?

  3. 等待机器人处理您的请求并生成响应。7a037f4287f3b51529e0187bb68d6c39.png

结论

通过执行这些步骤,您已成功设置与 Milvus 数据库集成的 Slack 应用程序以进行知识管理。现在,您可以在 Slack 中与机器人交互,测试其功能,并体验其 AI 驱动的功能。此设置允许根据提供的 Runbook 和知识源进行高效的查询处理和智能响应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/630.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

法律智能助手:开源NLP系统助力法律文件高效审查与检索

一、系统概述 思通数科AI平台是一款融合了自然语言处理和多标签分类技术的开源智能文档分类工具&#xff0c;特别适用于法律行业。平台采用深度学习的BERT模型来进行特征提取与关系抽取&#xff0c;实现了精准的文档分类和检索。用户可以在线训练和标注数据&#xff0c;使系统…

在linux系统中安装pygtftk软件

1.下载和安装 网址&#xff1a; https://dputhier.github.io/pygtftk/index.html ## 手动安装 git clone http://gitgithub.com:dputhier/pygtftk.git pygtftk cd pygtftk # Check your Python version (>3.8,<3.9) pip install -r requirements.txt python setup.py in…

Kubernetes:(三)Kubeadm搭建K8s 1.20集群

文章目录 一、Kubeadm安装流程二、实验1.环境准备2.所有节点安装kubeadm&#xff0c;kubelet和kubectl&#xff08;除了Harbor节点&#xff09;3.部署 Dashboard4.安装Harbor私有仓库 一、Kubeadm安装流程 集群名称IP地址安装软件master&#xff08;2C/4G&#xff0c;cpu核心数…

前端之html(二)加入css开篇(一)

1.lebal标签-增大点击范围 性别:<input type"radio" name"gender" id"man"><lebal for"man">男</lebal> <lebal><input type"radio" name"gender" id"nv">女</leba…

记一次:Clickhouse同步mysql数据库

ClickHouse可以通过使用MaterializeMySQL引擎来实现与MySQL的数据同步。 前言&#xff1a;因为数据量比较大&#xff0c;既然要分库&#xff0c;为何不让clickhouse同步一下mysql数据库呢&#xff1f; 零、前期准备--mysql的查询和配置 1 查询mysql的配置状态 查询以下语句…

Rust 力扣 - 1984. 学生分数的最小差值

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 原数组 nums 排序&#xff0c;遍历nums中下标为[0, nums.len() - k]的学生分数 假设当前遍历的下标为i则&#xff0c;以 i 下标为最小值的学生分数的最小差值为nums[i k - 1] - nums[i] 取最小差值的最小值即…

10个领先的增强现实平台【AR】

增强现实 (AR) 被描述为一种通过计算机生成的内容增强现实世界的交互式体验。 使用软件、应用程序和硬件&#xff08;例如 AR 眼镜&#xff09;&#xff0c;AR 能够将数字内容叠加到现实环境和物体上。早在 2024 年&#xff0c;许多像 Apple 这样的公司就已进入 VR/AR 市场&am…

提高交换网络可靠性之端口安全配置

转载请注明出处 此实验为配置交换机端口安全&#xff0c;当非法设备接入接口时自动触发安全措施 1.查看PC1和PC2的MAC地址&#x1f447; 2.交换机改名为S1&#xff0c;同时启用端口安全 3.配置允许接入设备 4.设置违规处理方式&#xff1a;即违规则关闭端口 5.查看安全端口相关…

HTTP与HTTPS的区别

HTTP与HTTPS的区别 一、HTTP二、HTTPS三、区别 一、HTTP HTTP (HyperText Transfer Protocol)&#xff0c;即超文本运输协议&#xff0c;是实现网络通信的一种规范 在计算机和网络世界有&#xff0c;存在不同的协议&#xff0c;如广播协议、寻址协议、路由协议等等… 而HTTP…

Qt中的Model与View5: QStyledItemDelegate

目录 QStyledItemDelegate API 重载公共函数 保护函数 重载保护函数 当在 Qt 项目视图中显示模型数据时&#xff0c;例如 QTableView&#xff0c;每个项目由代理绘制。此外&#xff0c;当项目被编辑时&#xff0c;提供一个编辑器小部件&#xff0c;该小部件在编辑时显示在项…

token无感刷新+处理并发的后端方案

问题描述&#xff1a; 当用户通过登陆后进入一个web网站&#xff0c;会把token保存到localStorage。假设token过期时间30min。 那么当用户在网站快乐地玩耍了30min后&#xff0c;这时进行了一次提交表单&#xff0c;它会被重定向到登陆页面。 作为用户&#xff1a;我表单填了…

VMware虚拟机Debian扩展磁盘

一、 版本 VMware&#xff1a;Workstation 17 Pro虚拟机&#xff1a;Debian11 二、 VMware虚拟机扩展 虚拟机关机状态快照或者备份&#xff1a;以免扩容失败导致文件丢失虚拟机——设置——硬盘——磁盘使用工具——扩展——扩展磁盘容量——设置为想要的大小 三、 虚拟机…

L1-2 什么是机器学习

L1-2 什么是机器学习 作者 陈越 单位 浙江大学 什么是机器学习&#xff1f;上图展示了一段面试官与“机器学习程序”的对话&#xff1a; 面试官&#xff1a;9 10 等于多少&#xff1f; 答&#xff1a;3 面试官&#xff1a;差远了&#xff0c;是19。 答&#xff1a;16 面试…

ssm基于WEB的人事档案管理系统的设计与实现+jsp

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 1 绪论 1 1.1 选题背景 1 1.2 选题意义 1 1.3 研究内容 2 2 系统开发技术 3 2.1 MySQL数据库 3 2.…

WireShark入门学习笔记

学习视频&#xff1a;WireShark入门使用教程 文章目录 WireShark介绍WireShark抓包入门操作WireShark过滤器使用WireShark之ARP协议分析WireShark之ICMP协议TCP连接的3次握手协议TCP连接断开的4次挥手协议WireShark抓HTTP协议黑客利用WireShark获取用户密码实战 WireShark介绍…

vue3中使用mqtt数据传输(封装)

使用版本 "mqtt": "^5.8.0",安装指令 npm install mqtt --save ------ yarn add mqtt介绍mqtt 参考使用文档 配置 connection: {protocol: "ws",host: "broker.emqx.io",port: 8083,endpoint: "/mqtt",clean: true,con…

《Baichuan-Omni》论文精读:第1个7B全模态模型 | 能够同时处理文本、图像、视频和音频输入

技术报告Baichuan-Omni Technical ReportGitHub仓库地址 文章目录 论文摘要1. 引言简介2. 训练2.1. 高质量的多模态数据2.2. 多模态对齐预训练2.2.1. 图像-语言分支2.2.2. 视频语音分支2.2.3. 音频语言分支2.2.4. 图像-视频-音频全方位对齐 2.3. 多模态微调监督 3. 实验3.1. 语…

计算机的一些基础知识

文章目录 编程语言 程序 所谓程序&#xff0c;就是 一组指令 以及 这组指令要处理的数据。狭义上来说&#xff0c;程序对我们来说&#xff0c;通常表现为一组文件。 程序 指令 指令要处理的数据。 编程语言发展 机器语言&#xff1a;0、1 二进制构成汇编语言&#xff1a;…

苏州金龙新V系客车创新引领旅游出行未来

10月25日&#xff0c;为期三天的“2024第六届旅游出行大会”在风景秀丽的云南省丽江市落下帷幕。本次大会由中国旅游车船协会主办&#xff0c;全面展示了中国旅游出行行业最新发展动态和发展成就&#xff0c;为旅游行业带来全新发展动力。 在大会期间&#xff0c;备受瞩目的展车…

【重生之我要苦学C语言】深入理解指针4

深入理解指针4 字符指针变量 指针指向字符变量 char ch w; char* p &ch;指针指向字符数组 char arr[10] "abcdef"; char* p arr;printf("%s\n", arr); printf("%s\n", p);结果是一样的 也可以写成&#xff1a; char* p "abc…