AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(2)

前面分享了平台对运维效率提升的重要性和挑战以及基于大模型的平台建设解决方案,新来的朋友点这里,一键回看精彩原文。

基于大模型构建高效的运维知识及智能问答平台(1)icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/135223109

今天楼主将用实例就跟大家分享一下如何构建知识库、构建的知识库如何应用于事件管理中,希望对你们有所帮助~

觉得楼主写的还不错的话,不要吝啬你们的一键三连呐~

楼主收到支持,会快马加鞭为你们带来更多高质量干货~

书接上篇,我们继续往下看

四、案例分享

1.所需要的软件列表

本次案例的实现,全部采用开源或SAAS的产品来提供,并不涉及到私有化部署的软件产品。软件列表如下所示,如何申请apikey请自行研究,在这里不再详细说明:

以上软件只是实现该系统的作者推荐列表,在实际的应用中有很多开源、saas、商业版本的软件产品供使用,在这里不再详说明,各位可以根据自己企业的性质自行选择合作的解决方案产品。

2.私有化知识样例说明

由于采用大模型对私有化的知识库数据进行智能问答和知识库系统的实现,因此需要说明私有化知识提供给大模型时一般采取什么格式,会取得比较好的效率。

通常情况下,可以支持各种文档数据,包括work、pdf、markdown、json等,在flowise中都有相应的解析组件可以完成解析,本例中我采用jsons格式,最佳格式是包括两个字段内容prompt和completion,这样大模型可以比较容易识别为“问题”和“答案”。如下示例所示:

{
"prompt": "Redis内存使用率高",
"completion": "Redis内存使用率高可能是由于数据存储的增长或未使用的数据未过期引起的。需要定期清理不必要的数据、优化内存配置以减少内存使用率。"
}

注意:在实际应用中,一定要考虑如果一份文档中包括多个知识点,如何做知识点切分的情况,因此建议采用json格式的数据,比较容易切分,一个“{}”即为一个知识点,pdf、word格式的知识块切分,可自行探索。

在告警的场景中,可以将告警的内容抽象成一段简单明了的问题存放到prompt字段中,将针对该事件的分析及处置过程整理到completion字段中,completion中可以详细记录产生问题的场景报错信息、问题产生的原因、解决的办法等信息,这样可以提供给大模型更好的推理能力。下面有一份Atlassian的产品报障信息及处置结果的总结,供参考:

  • 圈1:标题,即为prompt字段的问题

  • 剩下的问题、原因、解决方案,都可以放到completion字段中

3.准备知识数据

在开始之前需要先要有知识数据,本例我们为事件管理的智能问答系统,即在统一事件管理的工作台,事件分析及处置人员在对事件进行处置时,可以直接使用大模型推送的知识,并可以通过反覆盖的交互来完成问题的排查过程。

由于缺少这类的数据,以下知识为通过互联网搜索所得到的知识,比较简漏,但是通过构建这样私有化的知识内容,可以帮助我们走通整个构建的流程。

{"prompt": "Unix服务器保留CPU利用率异常", "completion": "Unix服务器的CPU利用率异常可能是由于不正确的进程管理或资源争用导致的。通过查看系统进程、性能监控工具和日志,可以帮助确定问题的来源,并采取适当的措施来解决它。"}

{"prompt": "GC次数", "completion": "GC次数表示垃圾回收的频率,它受到多种因素的影响,包括应用程序的负载和内存管理设置。要减少GC次数,可以优化代码,减少对象创建,增加堆内存,或者调整垃圾回收策略,以提高系统性能和稳定性。"}
{"prompt": "业务成功率低", "completion": "业务成功率低可能是由于网络问题、系统故障或应用程序错误引起的。需要进行详细的故障排除,包括检查日志、监视系统性能、验证网络连接,以找到并解决问题的根本原因。"}

{"prompt": "Unix服务器保留CPU利用率异常", "completion": "Unix服务器的CPU利用率异常可能是由于不正确的进程管理或资源争用导致的。通过查看系统进程、性能监控工具和日志,可以帮助确定问题的来源,并采取适当的措施来解决它。"}

{"prompt": "Weblogic中间件JVM使用的堆栈空间百分比", "completion": "Weblogic中间件的JVM堆栈空间百分比表示堆栈空间的使用情况。可以通过调整JVM参数、垃圾回收策略和应用程序代码来优化堆栈空间的使用,以提高性能和稳定性。"}

{"prompt": "Linux可用内存少", "completion": "Linux可用内存不足可能是由于运行的进程占用了太多内存,或者内存泄漏导致的。需要检查系统资源使用情况,释放不必要的进程或服务,以增加可用内存。"}

{"prompt": "ESX服务器内存使用率", "completion": "ESX服务器的内存使用率表示服务器内存的利用情况。通过监视内存使用情况、调整虚拟机配置和分配更多内存资源,可以改善性能和避免内存不足问题。"}

{"prompt": "Weblogic中间件JVM使用的Heap空间异常", "completion": "Weblogic中间件的JVM Heap空间异常可能是由内存泄漏或不正确的堆设置引起的。需要分析堆转储文件、调整JVM参数以及检查应用程序代码,以解决问题。"}

{"prompt": "Unix服务器磁盘忙", "completion": "Unix服务器磁盘忙可能是由于磁盘读写操作过多或者磁盘故障引起的。需要查看磁盘活动、日志和性能监控数据,以找到问题并采取适当的措施。"}

{"prompt": "Ping成功率低", "completion": "Ping成功率低通常是由于网络故障或丢包问题引起的。需要检查网络连接、路由、防火墙设置以及网络设备的状态,以提高Ping成功率。"}

{"prompt": "数据存储占用率高", "completion": "高数据存储占用率可能是由于数据积累或未清理的旧数据引起的。需要定期清理、归档或扩展存储资源,以处理数据存储占用率高的问题。"}

{"prompt": "NGINX连接数达上限", "completion": "当NGINX连接数达到上限时,可能是由于并发请求过多或配置限制不当引起的。需要增加连接数限制、优化配置和增加服务器资源以解决问题。"}

{"prompt": "系统成功率低", "completion": "系统成功率低可能是由于软件错误、硬件故障或网络问题引起的。需要进行详细的故障排除,包括检查日志、监视系统性能和验证网络连接,以找到并解决问题的根本原因。"}

{"prompt": "Redis内存使用率高", "completion": "Redis内存使用率高可能是由于数据存储的增长或未使用的数据未过期引起的。需要定期清理不必要的数据、优化内存配置以减少内存使用率。"}
 

4.构建向量数据库

我们需要登录pinecone,点击indexes,可以看到创建的index列表,本例中我们已经创建即了work index,基本上每个index对应一个领域的知识库,针对其它业务领域的可以再创建一个新的index。

对知识进行向量化之后,会有什么不同,我们可以看一下pingcone数据库存储的信息即可:我们无需创建任何表结果,embeddings方法会将原始数据即圈1位置的原始内容向量化转换为圈2的内容,并将这些信息都存储到一条记录中,一个分割的知识点一条记录。

5.所需要的软件列表

本次案例的实现,全部采用开源或SAAS的产品来提供,并不涉及到私有化部署的软件产品。软件列表如下所示,如何申请apikey请自行研究,在这里不再详细说明:

以上软件只是实现该系统的作者推荐列表,在实际的应用中有很多开源、saas、商业版本的软件产品供使用,在这里不再详说明,各位可以根据自己企业的性质自行选择合作的解决方案产品。

6.流程配置步骤说明

flowiseai是一个可视化的大模型构建工具,提供了非常丰富的算子,可以满足不同情况下用户的建模需求,如上图所示,本例中主要使用了7个关键算法,构建步骤说明如下:

step1:构建一个基于大模型的对话式应用

Flowise 是一个大模型构建工具,可以通过流程化的方式构建不同的应用,在本例中我们构建的是一个对话式机器人,因此,我们从chain中选择conversational retrieval QA Chain,它可以满足我们的需求,将其托动到红圈1所示的位置。

  • Language Model:用于选择大语言模型,可以选择flowise 已经支持的大语言模型,这里不仅仅支持openai,也支持亚马逊的、google的、Facebook等主流场景,因为flowise是一个开源的产品,您也可以将自己私有的大模型填加进来。

  • Vector Store Retriever:大模型进行知识存放的向量化数据库,下面的章节中会介绍向量数据库中存储的到底是什么。

  • Memory:大模型的上下文记忆能力,如果没有配置这个,则每一次问答就结束,没有办法根据上下文会话的内容进行推理。

还有一个更重要的参数,点击Conversation Retrieval QA Chain界面的“Additional Parameters”按钮来配置Prompt,你也可以理解为规则,大致可以说明为你想要大模型角色扮演什么,他的知识从哪里来,回答知识时有些什么样的规则,本例中我配置如下:

You are currently an ITOM expert, responsible for providing solutions to all alarms that occur. You will provide me with answers from the given info. If the answer is not included, say exactly “Hmm, I’m not sure” and stop after that. Refuse to answer any question not about the info. Never break character. Follow these five instructions below in all your responses . Use Chinese lanquage only. 2. Use Chinese characters whenever possible, 3. Do not use English except in programming languages if any;4. Avoid the Latin alphabet whenever possible. 5 Translate any other language to the Chinese language whenever possible

step2:配置QA Chain的大语言模型

本例中我们使用OpenAI来完成,因此选择LLMs中的ChatOpenAI,在这里也可以选择一些其它厂商的模型(如aws、facebook、google等,甚至包括一些国内的大模型),如下图所示:

未开通4.0,在这里model Name配置为gpt3.5,connect Credential配置链接 openai 的apikey,其它参数选择默认即可。

step3:配置向量数据库

在本例中我们选择pingcone这一SAAS软件。

1.向量数据库创建index,获取api key :需要登录pingcone获取一个api key,然后在pinecone中创建一个新的数据库索引,我这边命名为workindex。

2.配置参数:

  • document:代表知识库中输入的知识源,可以是一个或一批文件(pdf、json、word、markdown)等,在flowise 中包括各种解析这种文件的算子。

  • Embeddings:是一个对文件转成文本之后对其进行向量化的算法,把document中的文本进行转向量化的处理,也是有许多开源的算法和厂商提供。

  • connect Credential:是配置连接pinecone数据库的api key参数。

  • Pinecone index:用于配置数据库的索引,在这里选择work index,如果企业内部有多个不同业务领域,则可以配置为不同的index,这样可以使回答更准确,而不易混淆,尤其是业务描述比较相近的情况下。

step4:配置导入知识库

在本例中由于知识内容比较简单,没有大量的数据,我们直接以文本的方式导入,如下图所示:

我们直接将知识内容放入text文本框中即可。针对该文本的内容需要切分为不同的知识点,所在还有一个text splitter参数,进入第5步。

step5:配置文本切分方法

文本切分主要是为了将一个大文件中会包括多个知识点,切分成一个个的独立知识点,存入向量数据库中,由于本例我们使用的json格式,切分比较简单,按“}”来进行切分即可,如下图所示:

step6:针对切分好的知识点进行向量化转换

如下图所示,本例也使用open ai 的embeddings算法:

step7:配置智能问答机器人的上下文记忆能力

选择buffer memory算法,参数如下图所配置即可:

step8:验证创建的机器人是否能正常工作

我们输入“cpu利用率异常“,系统已经从我们构建的知识库中找到了答案,并且整个流程也能够跑通了:

step9:智能问答机器人应用场景集成

集成操作也比较简单,提供了多种集成方法,建议选择javascript方法,只需要在场景中创建一个单独的页面,将javascript的代码嵌入,即可如第8步中看到的样子进行工作了,最后只要调整一下窗口的大小即可。

擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司专注于通过提升企业客户对运维数据的洞见能力,为运维降本增效,充分体现科技运维对业务运营的影响力。

行业龙头客户的共同选择

了解更多运维干货与行业前沿动态

可以右上角一键关注

我们是深耕智能运维领域近十年的

连续多年获Gartner推荐的AIOps标杆供应商

下期我们不见不散~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【vscode】6、调试 shell

文章目录 经常在 IDE 下使用 高级语言后,往往并不习惯 shell 编程,因为没有酷炫的界面。但现在 vscode 可以很方便的调试 shell 脚本。 配置方法如下: vscode 下载 Bash Debug 插件 mac 升级 bash 版本(因为此 vscode 插件需要 b…

腾讯云的域名使用阿里云服务器配置

因为近期云服务器到期了,之前的域名已经完成了备案不想轻易回收。于是就换了个厂商,从腾讯云换到了阿里云。但是因为两个厂商不互通。我又不想把域名转入到阿里云。所以就开启了配置之路,一路磕磕绊绊。给大家整理一份顺序,一步到…

深入解析:如何使用Java、SpringBoot、Vue.js和MySQL构建课表管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Jira 宣布Data Center版涨价5%-15%,6年内第8次提价

近日,Atlassian官方面向合作伙伴发布2024年涨价通知: 自2024年2月15日起,旗下核心产品Jira Software、Confluence、Jira Service Management的DC版本(Data Center版本)价格提高5%-15%(涨幅与坐席数阶梯相关…

Pod控制器:

Pod控制器: Pv pvc 动态PV Pod控制器:工作负载。WordLoad,用于管理pod的中间层 ,确保pod资源符合预期的状态 预期状态: 副本数容器的重启策略镜像的拉取策略 Pod出现故障时的重启等等 Pod控制器的类型&#xff1a…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-17 串讲

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-17 串讲

uniapp + node.js 开发问卷调查小程序

前后端效果图 后端&#xff1a;nodejs 12.8 ; mongoDB 4.0 前端&#xff1a;uniapp 开发工具&#xff1a;HBuilderX 3.99 前端首页代码 index.vue <!-- 源码下载地址 https://pan.baidu.com/s/1AVB71AjEX06wpc4wbcV_tQ?pwdl9zp --><template><view class&q…

ubuntu系统(10):使用samba共享linux主机中文件

目录 一、samba安装步骤 1、Linux主机端操作 &#xff08;1&#xff09;安装sabma &#xff08;2&#xff09;修改samba配置文件 &#xff08;3&#xff09;为user_name用户设置samba访问的密码 &#xff08;4&#xff09;重启samba服务 2、Windows端 二、使用 1、代码…

CMake TcpServer项目 生成静态库.a / 动态库.so

CMake 实战构建TcpServer项目 静态库/动态库-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135608829?spm1001.2014.3001.5501 在这篇博客的基础上&#xff0c;我们把头文件放在include里边&#xff0c;把源文件放在src里边&#xff0c;重新构建 hehedali…

网页设计(一)开发环境配置与HTML基础

一、使用HBuilderX创建项目和文件 加粗样式HX创建HTML文档的模板位置 template.html模板内容 1.创建HTML项目 创建项目引导界面 新建项目窗口 Web-2009030199项目所在位置图 2.在项目下新建prj_1_2.html文件 创建文件引导界面 新建html文件界面 3.新建prj_1_2.ht…

什么是DNS(域名系统)

域名系统&#xff08;DNS&#xff09;像是互联网的电话簿&#xff0c;将人们容易记住的网址转换成计算机能理解的IP地址。 没有DNS&#xff0c;我们就需要记住复杂的数字序列来访问网站 DNS的基本概念 定义&#xff1a;DNS是一个分布式数据库&#xff0c;它将域名&#xff08…

智能小程序小部件(Widget)导航、地图、画布等组件,以及开放能力、原生组件说明

智能小程序小部件(Widget)导航、地图、画布等组件&#xff0c;以及开放能力、原生组件说明。 导航组件 navigator 页面链接&#xff0c;控制小程序的跳转。navigator 子节点的背景色应为透明色。 属性说明 属性名类型默认值必填说明urlstring是跳转地址deltanumber1否当 …

【开发实践】前端jQuery+gif图片实现载入界面

一、需求分析 载入界面&#xff08;Loading screen&#xff09;是指在计算机程序或电子游戏中&#xff0c;当用户启动应用程序或切换到新的场景时&#xff0c;显示在屏幕上的过渡界面。它的主要作用是向用户传达程序正在加载或准备就绪的信息&#xff0c;以及提供一种视觉上的反…

Vue3中provide,inject使用

一&#xff0c;provide,inject使用&#xff1a; 应用场景&#xff1a;向孙组件传数据 应用Vue3碎片&#xff1a; ref&#xff0c;reactive&#xff0c;isRef&#xff0c;provide, inject 1.provide,inject使用 a.爷组件引入 import {ref,provide} from vue const drinkListre…

Spring Boot 中实现定时任务(quartz)功能实战

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

BuildRoot配置RTL8822CE WIFIBT模块(WIFI部分)

TinkerBoard2主板自带的无线模块为RTL8822CE&#xff0c;PCIe接口 之前在风火轮下载的Linux源码编译出来的BuildRoot根文件系统没有相关的驱动文件 [rootrk3399:/]# find . -name *.ko [rootrk3399:/]# lsmod Module Size Used by Not tainted [rootrk33…

第二百七十一回

文章目录 1. 概念介绍2. 实现方法2.1 主要步骤2.1 注意事项 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何加载网络图片"相关的内容&#xff0c;本章回中将介绍如何加载本地图片.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在上一章回…

Scrum敏捷研发管理解决方案

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速创新…

力扣刷MySQL-第一弹(详细解析)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;力扣刷题讲解-MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出…

C++学习笔记(四十二):c++ 结构化绑定

本节介绍c结构化绑定&#xff0c;改知识点是c17中增加的新特性&#xff0c;主要是用来处理c多返回值的问题。 原来c17之前返回多个值的方法之前专门有一节内容在描述&#xff0c;简单回顾一下原来使用tuple返回多个返回值的方法&#xff0c;代码如下&#xff1a; #include &l…