将 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.rhkb.cn/news/462789.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《高频电子线路》—— 振荡器稳定性问题

文章内容来源于【中国大学MOOC 华中科技大学通信&#xff08;高频&#xff09;电子线路精品公开课】&#xff0c;此篇文章仅作为笔记分享。 振荡器稳定性问题 频率准确度 & 频率稳定度 希望频率稳定度越小越好。 频率稳定度分类 影响振荡频率稳定度的参数 振荡频率是和电…

基本查询【MySQL】

文章目录 基本查询插入时是否更新替换查询指定列查询查询字段为表达式为查询结果指定别名结果去重where条件NULL 的查询 结果排序筛选分页结果UpdateDelete截断表聚合函数分组(group by)having && where 基本查询 建表 mysql> create table Student (-> id int…

Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

Qt QCheckBox、QPushButton和QRadioButton详解

QCheckBox&#xff08;复选框&#xff09; 功能&#xff1a;QCheckBox用于创建一个复选框控件&#xff0c;允许用户从多个选项中选择多个。 属性&#xff1a; checkable&#xff1a;决定复选框是否可以被选中或取消选中。checked&#xff1a;表示复选框当前的选中状态&#…

【SpringMVC】传递json,获取url参数,上传文件

【传递json数据】 【json概念】 一种轻量级数据交互格式&#xff0c;有自己的格式和语法&#xff0c;使用文本表示一个对象或数组的信息&#xff0c;其本质上是字符串&#xff0c;负责在不同的语言中数据传递与交换 json数据以字符串的形式体现 【json字符串与Java对象互转…

2024/11/1 操作系统pv大题总结

2014&#xff1a; 2022&#xff1a; 2020&#xff1a; 2019&#xff1a; 2011&#xff1a; 读者写者问题&#xff1a;

00-开发环境 MPLAB IDE 配置

MPLAB IDE V8.83 File 菜单简介 New (CtrlN)&#xff1a; 创建一个新文件&#xff0c;用于编写新的代码。 Add New File to Project...&#xff1a; 将新文件添加到当前项目中。 Open... (CtrlO)&#xff1a; 打开现有文件。 Close (CtrlE)&#xff1a; 关闭当前打开的文件。 …

如何在Apple Vision Pro上打造成功的沉浸式叙述应用

随着科技的进步,沉浸式叙述应用正在成为一种全新的娱乐方式。Apple Vision Pro的发布,标志着空间计算技术迈上了新的台阶。本文将探讨如何在Vision Pro上构建一款类似Encounter Dinosaur的沉浸式叙述应用,具体通过分析《Out There》这款作品,总结出一系列关键点,帮助创作者…

Linux练习作业

1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器&#xff0c;对主dns服务器进行数据备份 环境准备 主从服务器都需要进行的操作#关闭防火墙、SELinnux systemctl stop firewalld setenforce 0#软件安装 yum install bind -y实验一&#…

计算机网络:网络层 —— IP 多播技术

文章目录 基本概念IP多播地址和多播组 IP多播的类型硬件多播将IPv4多播地址映射为多播MAC地址 基本概念 多播&#xff08;Multicast&#xff0c;也称为组播&#xff09;是一种实现“一对多”通信的技术&#xff0c;允许一台或多台主机&#xff08;多播源&#xff09;发送单一数…

掌握AI Prompt的艺术:如何有效引导智能助手

开头叙述&#xff1a; 在人工智能的世界里&#xff0c;Prompt&#xff08;提示&#xff09;是沟通人类意图与机器理解之间的桥梁。它不仅是一串简单的文字&#xff0c;而是一把钥匙&#xff0c;能够解锁AI模型的潜力&#xff0c;引导它们执行复杂的任务。本文将探讨Prompt的重…

[SAP ABAP] SMW0上传模板

通常来说&#xff0c;一个批量导入的程序必须使用指定的模板&#xff0c;我们需要将模板保存到SAP系统中&#xff0c;以便用户下载并更改。这里我们可以使用事务码SMW0解决上述的问题 1.选择二进制类型 2.输入存放的包 3.创建对象 选择需要进行上传的本地模板文件到SAP系统中 …

第二十六章 Vue之在当前组件范围内获取dom元素和组件实例

目录 一、概述 二、获取dom 2.1. 具体步骤 2.2. 完整代码 2.2.1. main.js 2.2.2. App.vue 2.3. BaseChart.vue 三、获取组件实例 3.1. 具体步骤 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. BaseForm.vue 3.3. 运行效果 一、概述 我们过去在想要获取一…

基于树莓派的安保巡逻机器人--(一、快速人脸录入与精准人脸识别)

目录 零、前言 一、人脸检测 二、人脸识别 1、采集人脸 2、训练人脸识别模型 3、人脸识别应用 零、前言 随着智能安防需求的增长&#xff0c;基于人工智能和物联网的安保系统逐渐成为趋势。树莓派因其低成本、高扩展性等特点&#xff0c;成为很多AI项目的理想平台。本文将为大…

软件测试学习笔记丨Flask操作数据库-对象与数据模型

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/23440 对象与数据模型 数据模型&#xff1a;是数据特征的抽象&#xff0c;抽象层次上描述了系统的静态特征、动态行为和约束条件&#xff0c;为数据库系统的信息表示与操作提供一个抽象的框架…

信号量本质 信号量实验(控制车辆运行,优先级反转)互斥量

信号量本质 前面介绍的队列(queue)可以用于传输数据&#xff1a;在任务之间、任务和中断之间。 消息队列用于传输多个数据&#xff0c;但是有时候我们只需要传递状态&#xff0c;这个状态值需要用一个 数值表示&#xff0c;比如&#xff1a; ⚫ 卖家&#xff1a;做好了 1 …

【STL_list 模拟】——打造属于自己的高效链表容器

一、list节点 ​ list是一个双向循环带头的链表&#xff0c;所以链表节点结构如下&#xff1a; template<class T>struct ListNode{T val;ListNode* next;ListNode* prve;ListNode(int x){val x;next prve this;}};二、list迭代器 2.1、list迭代器与vector迭代器区别…

VLAN间通信以及ospf配置

目录 1.基础知识介绍 1.1 什么是VLAN&#xff1f; 1.2 VLAN有什么用&#xff1f; 1.3 不同VLAN如何实现通信&#xff1f; 1.4 什么是路由汇总&#xff1f; 1.4.1 路由汇总的好处&#xff1a; 2. 实验 2.1 网络拓扑设计 2.2 实验配置要求 2.2.1 三层交换配置&#xff…

UE4_Niagara基础实例—13、通过纹理采样来创造粒子

效果&#xff1a; 知识点&#xff1a; 1、纹理采样目前仅支持GPU粒子运行&#xff08;Texture sampling is only supported on the GPU at the moment.&#xff09; 2、网格位置输出每个粒子在网格中的归一化位置。我们使用该值来采样纹理&#xff0c;就像它是UV一样&#xff…

前段(vue)

目录 跨域是什么&#xff1f; SprinBoot跨域的三种解决方法 JavaScript 有 8 种数据类型&#xff0c; 金额的用什么类型。 前段 区别 JQuery使用$.ajax()实现异步请求 Vue 父子组件间的三种通信方式 Vue2 和 Vue3 存在多方面的区别。 跨域是什么&#xff1f; 跨域是指…