当前位置: 首页 > news >正文

《异常检测——从经典算法到深度学习》30. 在线服务系统中重复故障的可操作和可解释的故障定位

《异常检测——从经典算法到深度学习》

  • 0 概论
  • 1 基于隔离森林的异常检测算法
  • 2 基于LOF的异常检测算法
  • 3 基于One-Class SVM的异常检测算法
  • 4 基于高斯概率密度异常检测算法
  • 5 Opprentice——异常检测经典算法最终篇
  • 6 基于重构概率的 VAE 异常检测
  • 7 基于条件VAE异常检测
  • 8 Donut: 基于 VAE 的 Web 应用周期性 KPI 无监督异常检测
  • 9 异常检测资料汇总(持续更新&抛砖引玉)
  • 10 Bagel: 基于条件 VAE 的鲁棒无监督KPI异常检测
  • 11 ADS: 针对大量出现的KPI流快速部署异常检测模型
  • 12 Buzz: 对复杂 KPI 基于VAE对抗训练的非监督异常检测
  • 13 MAD: 基于GANs的时间序列数据多元异常检测
  • 14 对于流数据基于 RRCF 的异常检测
  • 15 通过无监督和主动学习进行实用的白盒异常检测
  • 16 基于VAE和LOF的无监督KPI异常检测算法
  • 17 基于 VAE-LSTM 混合模型的时间异常检测
  • 18 USAD:多元时间序列的无监督异常检测
  • 19 OmniAnomaly:基于随机循环网络的多元时间序列鲁棒异常检测
  • 20 HotSpot:多维特征 Additive KPI 的异常定位
  • 21 Anomaly Transformer: 基于关联差异的时间序列异常检测
  • 22 Kontrast: 通过自监督对比学习识别软件变更中的错误
  • 23 TimesNet: 用于常规时间序列分析的时间二维变化模型
  • 24 TSB-UAD:用于单变量时间序列异常检测的端到端基准套件
  • 25 DIF:基于深度隔离林的异常检测算法
  • 26 Time-LLM:基于大语言模型的时间序列预测
  • 27 Dejavu: Actionable and Interpretable Fault Localization for Recurring Failures in Online Service Systems
  • 28 UNRAVEL ANOMALIES:基于周期与趋势分解的时间序列异常检测端到端方法
  • 29 EasyTSAD: 用于时间序列异常检测模型的工业级基准
  • 30 在线服务系统中重复故障的可操作和可解释的故障定位

相关:

  • VAE 模型基本原理简单介绍
  • GAN 数学原理简单介绍以及代码实践
  • 单指标时间序列异常检测——基于重构概率的变分自编码(VAE)代码实现(详细解释)

30. Actionable and Interpretable Fault Localization for Recurring Failures in Online Service Systems

在这里插入图片描述

论文名称:Actionable and Interpretable Fault Localization for Recurring Failures in Online Service Systems
会议名称:ESEC/FSE 2022
论文地址:ieee | 阿里云盘 | netman |
PPT 下载:https://netman.aiops.org/wp-content/uploads/2022/11/DejaVu-slides.pdf
源码地址:https://github.com/netmanaiops/dejavu

30.1 论文概述

在现代在线服务平台中,由于系统的复杂性和规模庞大,故障不可避免地发生,导致巨大的经济损失和用户不满。为了解决这一问题,研究者们开发了一种名为DéjàVu的方法,旨在为反复出现的故障提供可操作且可解释的故障定位。该方法不仅能够告知工程师故障发生的位置(即有故障的组件),还试图确定故障的具体类型(如内存泄漏)。通过直接分析监控指标,DéjàVu能够在多个真实世界数据集上实现高效准确的故障定位。

论文提出,在实际工业实践中,经验丰富的工程师通常基于系统知识和历史故障经验,针对重复出现的故障进行定位。这种方法虽然可操作且可解释,但高度依赖人工,速度慢且可能不准确。因此,论文旨在通过机器学习自动化这一过程,提出一种名为Déjà Vu的方法,针对在线服务系统中的重复故障进行可操作且可解释的故障定位。

论文脑图:
在这里插入图片描述

30.2 背景与相关技术

30.2.1 背景介绍

1. 在线服务系统的重要性:举例说明在线服务系统在日常生活中的重要性。
在这里插入图片描述
2. 在线服务系统的复杂性导致错误发现与分析任务变得困难
在这里插入图片描述

30.2.2 相关技术介绍

前面提到了在线服务系统的背景(抛出问题),这里开始介绍当前的主要解决方法:

1. 24 x 7 的指标监控系统:对于不同的层级进行相应的指标监控,并依据监控结果来定位问题。
在这里插入图片描述
2. 重复出现的故障:图中总结了几个常见的重复故障原因,并且抛出了核心问题:如何检测重复出现的故障?
在这里插入图片描述
这里主要强调:反复出现的故障在实践中普遍存在
在这里插入图片描述

30.3 核心方法

结合PPT截图,上文已经抛出了论文的核心问题:如何检测现在系统中重复出现的故障。

本节内容介绍本论文提到的核心方法。

30.3.1 方法描述

本文提出的De’JaVu模型是一种针对在线服务系统故障诊断的深度学习模型。该模型通过历史故障数据和FDG(故障分布图)来预测当前故障可能的故障单元,并给出相应的可疑分数。具体来说,该模型包括三个主要模块:特征提取器、特征聚合器和分类器。其中,特征提取器使用GRU神经网络和 1D-CNN等技术来提取时间序列数据中的时空信息;特征聚合器则利用注意力机制和多层图神经网络来对相关故障单元进行聚合;最后,分类器使用密集神经网络来进行二元分类。

30.3.2 DejáVu模型的工作流程

如下图所示,首先,该模型需要历史故障数据和相应的故障图来训练。在训练过程中,模型会从历史故障数据中学习到故障模式,并将其表示为固定长度的向量。然后,当一个新的故障事件发生时,模型会将当前的故障图和相关的指标值输入到模型中,模型会对每个故障单元进行评分,并输出最有可能的故障单元和其对应的故障类型。整个过程可以看作是一个端到端的学习和推理过程,能够有效地自动化故障诊断的过程。

其中,图中左边部分提到:监控系统的指标出现故障时,报警(Alerts)作为触发器(Trigger)来触发整个模型的工作流程。

在这里插入图片描述

30.3.3 DejáVu 模型架构

如下图所示,从左往右,模型主要模块与工作流程可以概述如下:

  1. 故障单元的指标 -> 特征提取器::前文已经介绍由监控系统中的故障指标触发整个流程,第一个步骤是根据指标数据,提取相关特征;
  2. 特征提起器 -> 单元级别故障特征:这里可以理解为一个归类过程,将所有故障特征根据 unit 进行划分,不同的 unit 对应的十不同的单元特征。
  3. 单元级别故障 -> 特征聚合器:特征聚合器则将所有故障单元的特征向量进行编码,以便于建模故障传播关系。
  4. 特征聚合器 -> 分类器 分类器根据聚合后的特征向量对每个故障单元进行分类,以确定最可能的故障位置和类型。
  5. 分类型 -> 评分:计算分数并选择最佳故障单元:在这个阶段,模型使用分类器对每个故障单元进行打分,并选择得分最高的作为最终预测结果。

在这里插入图片描述

30.4 核心组件详情

本章的内容主要与论文的 3.2 ~ 3.6 节相对应。

30.4.1 特征提取器(Feature Extractor)

该模块的主要任务是学习故障单元的时间序列特征,并捕捉不同指标之间的相关性。为了实现这一目标,该模块采用了三阶段特征提取方法。第一阶段利用门控循环神经网络(GRU)模型来学习故障单元的时间序列特征。输入指标被表示为一个固定长度的时间窗口内的数值矩阵,其中时间窗口的长度在实验中被设置为 20 分钟。第二阶段应用了一维卷积神经网络(1-D CNN)和高斯误差线性单元(GELU)激活函数来进一步处理时间序列特征矩阵,提取不同时间点和指标之间的相关性。第三阶段采用全连接层来学习不同特征映射之间的关系,并输出一个表示故障单元的单位级特征向量。这些特征向量将作为后续特征聚合器的输入,以进一步建模故障传播关系。总之,特征提取器模块通过多阶段的学习过程,能够有效地从故障单元的时间序列数据中提取有用的特征信息,为后续的故障定位提供有力支持。

30.4.2 特征聚合器(Feature Aggregator)

该模块的任务是在整个系统架构图上对每个故障单元及其相关特征进行编码,以便更好地建模故障传播关系。具体来说,在训练过程中,对于每个历史故障事件,特征聚合器会将其对应的故障单元及其相关特征向量传递给全局特征聚合器。全局特征聚合器会对所有故障单元的特征向量进行聚合,得到一个表示整个系统状态的全局特征向量。然后,全局特征向量会被传递到分类器中,用于预测当前故障单元的类型。在推理过程中,当一个新的故障事件发生时,特征聚合器会将其对应的故障单元及其相关特征向量传递给全局特征聚合器,同样地,全局特征聚合器会对所有故障单元的特征向量进行聚合,得到一个表示整个系统状态的全局特征向量。这个全局特征向量可以用来判断当前故障是否属于已知类型的故障,从而快速诊断故障并给出相应的解决方案。总的来说,特征聚合器模块通过将故障单元的特征向量进行聚合,实现了对整个系统状态的有效建模,提高了故障定位的速度和准确性。

30.4.3 分类器 (Classifier)

该模块的任务是根据输入的全局特征向量,对每个故障单元进行分类,并输出其可疑度得分。具体来说,在训练过程中,分类器会接收全局特征向量作为输入,并学习如何将其映射到各个故障单元的类别概率分布上。在推理过程中,分类器会接收新的全局特征向量作为输入,并输出每个故障单元的可疑度得分。这些得分可以按照从高到低的顺序排列,工程师可以根据排名情况逐个检查可疑度较高的故障单元,从而快速定位故障原因。总的来说,分类器模块通过学习全局特征向量与各个故障单元之间的关系,实现了对故障单元的自动分类和可疑度评估,提高了故障定位的效率和准确性。

这里摘录论文公式如下,其中 f ^ ( v ) \hat{f}^{(v)} f^(v) 表示故障单元 v v v 的聚合特征, σ \sigma σ 表示输出层的激活函数,两个Dense 表示普通的神经网络层

s ( v ) = ( σ ∘ Dense ∘ GELU ∘ Dense ) ( f ^ ( v ) ) (1) s(v) = (\sigma \circ \text{Dense} \circ \text{GELU} \circ \text{Dense}) (\hat{f}^{(v)}) \tag{1} s(v)=(σDenseGELUDense)(f^(v))(1)

30.4.4 损失函数 (Loss Function)

本小节在损失函数方面,论文采用了二元交叉熵作为损失函数。具体来说,他们将可疑度得分与实际标签进行比较,并根据差异来更新模型参数。为了避免正常单元被错误地赋予高可疑度得分,作者还引入了一些技巧来平衡正常单元和故障单元的权重。总的来说,这种损失函数的设计使得模型能够快速而准确地识别出故障单元,并给出相应的可疑度得分。

30.4.5 类别均衡 Class Balanci

本小节作者提到由于不同故障类别的频率可能会有所不同,因此需要对训练数据进行类别平衡处理。具体来说,他们采用的方法是在每次迭代时随机选择一些正常单元和故障单元,并且确保它们的数量大致相等。这样做的目的是为了防止模型过于关注某些特定的故障类别,从而导致其他类别的性能下降。通过这种方式,作者成功地提高了模型的泛化能力和鲁棒性,使其能够在实际应用中更加可靠地进行故障定位。

30.5 源码运行

本节主要是帮助没有代码基础,不太会部署与运行源码的同学。

这里强烈建议各位小伙伴们使用 docker 部署这个项目。

30.5.1 下拉镜像

$ docker pull lizytalk/dejavu

在这里插入图片描述
等待一段时间,拉镜像完成以后,即可开始下一步操作。
在这里插入图片描述

30.5.2 启动容器

如果电脑不含显卡,则运行下面的命令即可。

$ docker run -it --rm -v F:\\dejavu:/workspace lizytalk/dejavu bash

如果电脑含有显卡,请运行下面的命令,使用显卡来运行项目会快一些。
在这里插入图片描述

$ docker run --gpus all -it --rm -v  F:\\dejavu:/workspace lizytalk/dejavu bash

30.5.3 下载或者 clone 源码到 workspace 目录下

这里的 workspace 是上一行命令中指定的目录,需要根据实际情况来定。

30.5.4 下载数据集,并解压到指定的位置

前往 https://www.dropbox.com/scl/fo/otvnxp4j5jl5e8myh5sop/AHKvJsGU2-sNMRjNkn87_Fo?rlkey=znxsescrsyl5m7g9lvv3fvnjq&e=1&dl=0 下载数据集,可以考虑只下载一个数据集压缩包先跑着试试。

解压到 ./DejaVu/data 目录下,注意,如果刚刚克隆下来的项目名字叫做 dejavu,那么它的绝对路径是 workspace/dejavu/DejaVu/data

30.5.6 根据作者的提示,执行相关脚本即可进行实验

在这里插入图片描述

30.6 总结

文章优点
本文提出了一种针对在线服务系统中频繁出现的故障问题的可操作性和可解释性的故障定位方法De’JaVu。该方法利用历史故障数据训练模型,并通过连接故障单元构建故障依赖图来考虑复杂的依赖关系。实验结果表明,De’JaVu在识别故障单元方面具有较高的准确率和效率,并且能够处理以前未见过的故障情况。此外,文章还提供了两种可解释的方法,以帮助工程师理解模型的决策过程。

方法创新点
De’JaVu采用了新颖的深度学习模型,结合了故障单元之间的依赖关系,使得模型可以更好地捕捉复杂的关系。同时,作者提出了两种可解释的方法,即基于历史故障推荐相似故障和基于规则集的全局解释,以便工程师更好地理解和使用模型。

Smileyan
2025.04.01 00:08

相关文章:

《异常检测——从经典算法到深度学习》30. 在线服务系统中重复故障的可操作和可解释的故障定位

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …...

座舱与智驾“双轮驱动”,芯擎科技打造智能汽车“芯”标杆

在比亚迪、吉利、奇瑞等各大主机厂打响“全民智驾”的关键时期,以芯擎科技为代表中国芯片厂商开始“放大招”。 2025年3月27日,芯擎科技在南京举办了“擎随芯动、智融万象”生态科技日,重磅发布了“星辰一号”、“星辰一号Lite”&#xff0c…...

观察者模式在Java单体服务中的运用

观察者模式主要用于当一个对象发生改变时,其关联的所有对象都会收到通知,属于事件驱动类型的设计模式,可以对事件进行监听和响应。下面简单介绍下它的使用: 1 定义事件 import org.springframework.context.ApplicationEvent;pu…...

html5时钟升级!支持切换深浅模式 Canvas实现现代化动态时钟

HTML5 Canvas实现现代化动态时钟 这里写目录标题 HTML5 Canvas实现现代化动态时钟项目介绍技术实现1. 项目架构2. Canvas绘图实现2.1 表盘绘制2.2 刻度绘制2.3 指针绘制 3. 动画效果4. 主题切换 项目亮点技术要点总结项目收获改进方向结语 项目介绍 本项目使用HTML5 Canvas技术…...

Scala(2)

For循环控制 循环守卫 基本语法 for(i <- 1 to 3 if i ! 2) { print(i " ") }println() 说明&#xff1a; 循环守卫&#xff0c;即循环保护式&#xff08;也称条件判断式&#xff0c;守卫&#xff09;。保护式为 true 则进入循环体内部&#xff0c;为false 则跳…...

DataGear 5.3.0 制作支持导出表格数据的数据可视化看板

DataGear 内置表格图表底层采用的是DataTable表格组件&#xff0c;默认并未引入导出数据的JS支持库&#xff0c;如果有导出表格数据需求&#xff0c;则可以在看板中引入导出相关JS支持库&#xff0c;制作具有导出CSV、Excel、PDF功能的表格数据看板。 在新发布的5.3.0版本中&a…...

项目-苍穹外卖(十六) Apache ECharts+数据统计

一、介绍 二、营业额统计 需求分析和设计&#xff1a; Controller: Service: /*** 营业额统计* param begindate* param enddate* return* */Overridepublic TurnoverReportVO turnoverStatistics(LocalDate begindate, LocalDate enddate) {//创建时间集合List<LocalDate&…...

使用 PowerShell 脚本 + FFmpeg 在 Windows 系统中批量计算 MP4视频 文件的总时长

步骤 1&#xff1a;安装 FFmpeg 访问 FFmpeg 官网(Download FFmpeg)&#xff0c;下载 Windows 版编译包&#xff08;如 ffmpeg-release-full.7z&#xff09;。或者到&#xff08;https://download.csdn.net/download/zjx2388/90539014&#xff09;下载完整资料 解压文件&#…...

低成本文件共享解决方案:Go File本地Docker部署与外网访问全记录

文章目录 前言1. 安装Docker2. Go File使用演示3. 安装cpolar内网穿透4. 配置Go File公网地址5. 配置Go File固定公网地址 前言 在这个信息爆炸的时代&#xff0c;谁还没遇到过这样的囧事呢&#xff1f;正在办公室电脑上赶工报告&#xff0c;手机却突然蹦出一条紧急邮件&#…...

python文件的基本操作和文件读写

目录 文件的基本操作 文件读写 文件的基本操作 Python 中对文件的基本操作主要包括打开文件、读取文件、写入文件和关闭文件等操作。下面是一个简单的示例&#xff1a; 打开文件&#xff1a; file open(example.txt, r) # 使用 open() 函数打开一个名为 example.txt 的文…...

大数据与datax1.0

一、datax含义 是一个数据搬运工具 二、需要注意的点 插件(plugin)下面的reader和writer 要删除(第一步执行肯定会报错 所以请记得一定要删除reader和writer下的隐藏文件) 三、心得 做任何事要事半功倍,而不要事倍功半,好的学习方法永远比盲目的努力更重要--------谨记3.31…...

蚂蚁集团主导的ISO密码学国际标准立项,纳入国产算法

蚂蚁集团主导的ISO密码学国际标准 ISO 25330-3 立项&#xff0c; 国产算法Ferret成为标准方案。 近日&#xff0c;在美国弗吉尼亚州举行的 ISO/IEC JTC 1/SC 27 全体会议上&#xff0c;ISO/IEC 25330第三部分《Information Security — Oblivious Transfer — Part 3: Obliv…...

【新人系列】Golang 入门(十):错误处理详解 - 上

✍ 个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4dd; 专栏地址&#xff1a;https://blog.csdn.net/newin2020/category_12898955.html &#x1f4e3; 专栏定位&#xff1a;为 0 基础刚入门 Golang 的小伙伴提供详细的讲解&#xff0c;也欢迎大佬们…...

Unity 2022.3.x部分Android设备播放视频黑屏问题

Android平台视频兼容性问题很多…类似的黑屏问题真的很头大&#xff0c;总结一些常见问题&#xff1a; 1. 视频文件不支持压缩 如果使用AssetBundle加载视频&#xff0c;这个AssetBundle压缩格式要选None。有人可能会说最新版Unity已经支持bundle压缩下播放视频&#xff0c;稳…...

基于Python的Django框架的个人博客管理系统

标题:基于Python的Django框架的个人博客管理系统 内容:1.摘要 本文围绕基于Python的Django框架构建个人博客管理系统展开。背景方面&#xff0c;随着互联网发展&#xff0c;个人博客成为信息分享与交流重要平台&#xff0c;传统博客管理系统在功能与灵活性上存在不足。目的是开…...

Unity加载OSGB倾斜摄影数据

Unity加载OSGB倾斜摄影数据 显而易见有一个最方便的办法就是使用CesiumForUnity确定是可以通过osgb数据转换成3dtiles进行加载的&#xff0c;然而有没有直接加载osgb格式数据的方法呢&#xff1f; 我们知道osgb的osg推出的倾斜摄影数据的数据结构&#xff0c;所以&#xff0c…...

RabbitMQ简单介绍和安装

RabbitMQ简单介绍 一.RabbitMQ介绍二.RabbitMQ的作用1.异步解耦2.流量削峰3.消息分发4.延迟通知 三.RabbitMQ安装&#xff08;Ubuntu&#xff09;1.先安装Erlang2.安装RabbitMQ3.安装RabbitMQ的管理界面4.创建虚拟机5.端口号信息 四.工作原理图 一.RabbitMQ介绍 RabbitMQ 是一款…...

【清华大学】DeepSeek政务应用场景与解决方案

目录 一、政务数字化转型三阶段演进二、人工智能政务应用场景四大方向 三、技术方案核心技术 四、解决方案案例1. 公文写作2. 合同协议智能审查3. 行政执法4. 就业指导 五、风险及对策六、落地大四步法七、未来发展展望AI职业替代逻辑空间智能与具身智能人机共生 一、政务数字化…...

spring boot自动装配原理

springboot自动装配几乎是现在面试必问的面试题&#xff0c;要是逐行分析自动装配流程肯定是很复杂的&#xff0c;因此我们从大体上来梳理即可。 一、 自动装配总览 首先要搞清楚两个问题&#xff0c;springboot自动装配是什么&#xff1f;解决了什么问题&#xff1f; springbo…...

【SDMs分析1】基于ENMTools R包的生态位分化分析和图像绘制(identity.test())

基于ENMTools包的生态位分化 1. 写在前面2. 生态位分化检验案例13. 生态位分化检验案例21. 写在前面 最近学了一个新的内容,主要是关于两个物种之间生态位分化检验的 R 语言代码。生态位分化是物种分布模型(SDM )研究中的关键部分,许多 SCI 论文都会涉及这一分析。该方法主…...

蓝桥杯比赛python程序设计——纯职业小组

问题描述 在蓝桥王国&#xff0c;国王统治着一支由 nn 个小队组成的强大军队。每个小队都由相同职业的士兵组成。具体地&#xff0c;第 ii 个小队包含了 bibi​ 名职业为 aiai​ 的士兵。 近日&#xff0c;国王计划在王宫广场举行一场盛大的士兵检阅仪式&#xff0c;以庆祝王…...

【Git教程】将dev分支合并到master后,那么dev分支该如何处理

将 dev 合并到 master 后的分支状态与操作指南 1. 合并后的分支状态 dev 分支不会消失&#xff1a; Git 的 git merge 命令仅将 dev 的内容合并到 master&#xff0c;不会删除 dev 分支。合并后&#xff0c;dev 分支仍然存在&#xff0c;其历史记录和代码保持不变。 分支的 H…...

python系统之综合案例:用python打造智能诗词生成助手

不为失败找理由&#xff0c;只为成功找方法。所有的不甘&#xff0c;因为还心存梦想&#xff0c;所以在你放弃之前&#xff0c;好好拼一把&#xff0c;只怕心老&#xff0c;不怕路长。 python系列之综合案例 前言一、项目描述二、项目需求三、 项目实现1、开发准备2、代码实现 …...

HCIA-数据通信datacom认证

文章目录 一、数据通信简介1.1 标准协议1.2 数据传输过程 二、通用路由平台VRP2.1 VRP简介2.2 命令行基础 三 、网络层协议IP3.1 数据封装3.2 数据包传输2.3 IP地址2.4 子网划分2.5 ICMP 四、IP路由基础4.1 路由概述4.2 路由表4.3 路由转发4.4 静态路由4.5 动态路由4.6 路由高级…...

学以致用,基于OpenCV的公摊面积估算程序

由于很多户型图并没有标注各个房间或者走廊的面积&#xff0c;亦或比较模糊&#xff0c;且很多人并不具备迅速口算多个小数相加再做除法的能力&#xff0c;本帖通过程序粗略计算公摊比例。由于非专业人士&#xff0c;公摊面积涉及到很多建筑学的专业公式&#xff0c;因此本帖只…...

Odoo/OpenERP 和 psql 命令行的快速参考总结

Odoo/OpenERP 和 psql 命令行的快速参考总结 psql 命令行选项 选项意义-a从脚本中响应所有输入-A取消表数据输出的对齐模式-c <查询>仅运行一个简单的查询&#xff0c;然后退出-d <数据库名>指定连接的数据库名&#xff08;默认为当前登录用户名&#xff09;-e回显…...

Ubuntu20.04安装OpenVINO环境以及YOLOv8 C++部署测试

深度学习 文章目录 深度学习一、三种推理框架介绍1、OpenVINO介绍2、TensorRT介绍3、Mediapipe介绍 二、三种框架的对比1、框架自身比较2.1、从模型部署上&#xff1a;2.2.从支持深度学习模型上&#xff1a;2.3.从应用平台上:2.4.从上手的难易程度上&#xff1a; 2、应用平台比…...

uniapp微信小程序封装navbar组件

一、 最终效果 二、实现了功能 1、nav左侧返回icon支持自定义点击返回事件&#xff08;默认返回上一步&#xff09; 2、nav左侧支持既显示返回又显示返回首页icon 3、nav左侧只显示返回icon 4、nav左侧只显示返回首页icon 5、nav左侧自定义left插槽 6、nav中间支持title命名 7…...

Docker中安装MySQL--------【详细图解】

1.根据所需拉取镜像---------不指定版本会下载最新版 docker pull mysql:8.0.27 2.查看所拉取的镜像 docker images 3.在/usr/local下创建docker、mysql目录 cd /usr/local mkdir docker mkdir mysql 4.进入mysql文件夹 cd mysql 5.创建config文件夹 mkdir config 6.编写配…...

QT基础:安装与简介

QT初级 1、简介1.1 安装1.2 设置1.3 在VS中配置Qt1.3 帮助文档 2、Qt项目2.1 创建项目2.1 项目文件2.2 Qt中的窗口类窗口显示 2.3 坐标体系2.4 内存回收 1、简介 QT是一个跨平台的C应用程序开发框架。几乎支持所有的平台, 可用于桌面程序开发以及嵌入式开发。 Qt是标准 C 的扩…...

智能打印预约系统:微信小程序+SSM框架实战项目

微信小程序打印室预约系统&#xff0c;采用SSM&#xff08;SpringSpringMVCMyBatis&#xff09;经典框架组合。 一、系统核心功能详解 1. 智能化管理后台 ​用户数据看板​打印店资源管理​预约动态监控​服务评价系统 2. 微信小程序端 ​智能定位服务​预约时段选择​文件…...

AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

WebSocket 可以实现双向通信&#xff0c;适合实时通信场景。本文介绍一下使用 Javacript 语言开发 AWTK-WEB 应用程序&#xff0c;并用 WebSocket 与服务器通讯。 用 AWTK Designer 新建一个应用程序 先安装 AWTK Designer&#xff1a; https://awtk.zlg.cn/web/index.html …...

一.搭建ubuntu系统服务器

搭建ubuntu系统服务器 一&#xff1a;Ubantu下载及安装1.Ubuntu的U盘系统安装工具制作2.Ubuntu系统安装 二.安装ssh实现远程连接1.安装OpenSSH服务器2.启动SSH服务并设置开机自启3.配置文件4.配置防火墙5.处理SELinux&#xff08;仅限CentOS/RHEL&#xff09;6.设置和修改SSH密…...

[python]基于yolov8实现热力图可视化支持图像视频和摄像头检测

YOLOv8 Grad-CAM 可视化工具 本工具基于YOLOv8模型&#xff0c;结合Grad-CAM技术实现目标检测的可视化分析&#xff0c;支持图像、视频和实时摄像头处理。 功能特性 支持多种Grad-CAM方法实时摄像头处理视频文件处理图像文件处理调用简单 环境要求 Python 3.8需要电脑带有…...

微软 GraphRAG 项目学习总结

微软2024年4月份发布了一篇《From Local to Global: A GraphRAG Approach to Query-Focused Summarization》&#xff08;GraphRAG&#xff1a;从局部到全局的查询式摘要方法&#xff09;论文&#xff0c;提出了一种名为GraphRAG的检索增强生成&#xff08;RAG&#xff09;方法…...

DeepSeek结合MCP Server与Cursor,实现服务器资源的自动化管理

MCP Server是最近AI圈子中又一个新的热门话题。很多用户都通过结合大语言模型、MCP Server&#xff0c;实现了一些工具流的自动化&#xff0c;例如&#xff0c;你只需要给出文字指令&#xff0c;就可以让Blender自动化完成建模的工作。你有没有想过&#xff0c;利用MCP来让AI A…...

DFX架构详解:构建面向全生命周期的卓越设计体系

引言 在当今高度竞争的市场环境中&#xff0c;产品开发已不再是单纯的功能实现&#xff0c;而是需要从设计源头考虑制造效率、用户需求、成本控制、环境兼容性等多维目标。DFX&#xff08;Design for X&#xff09;架构作为一种系统化的设计方法论&#xff0c;正成为企业实现产…...

如何在 Vue 项目中使用 Vite 和 Cordova 动态加载 Layui 和 DTree

随着前端开发工具的不断进步&#xff0c;Vue 项目的构建工具也从 Webpack 升级到了 Vite。Vite 的快速构建和热更新功能使得开发体验大大提升。 本文将介绍如何在迁移至 Vite 后&#xff0c;动态加载 Layui 和 DTree 库&#xff0c;并兼容 Cordova 应用中的资源路径。 1. Vite …...

如何在 vue 渲染百万行数据,vxe-table 渲染百万行数据性能对比,超大量百万级表格渲染

vxe-table 渲染百万行数据性能对比&#xff0c;超大量百万级表格渲染&#xff1b;如何在 vue 渲染百万行数据&#xff1b;当在开发项目时&#xff0c;遇到需要流畅支持百万级数据的表格时&#xff0c; vxe-table 就可以非常合适了&#xff0c;不仅支持强大的功能&#xff0c;虚…...

el-select+el-tree实现下拉树形选择

主要实现el-select下使用树结构,支持筛选功能 封装的组件 composeTree.vue <template><div class"vl-tree"><el-select class"treeScroll" popper-class"treeScrollSep"v-model"selectedList"placeholder"请选择…...

JavaScript函数知识点总结

JavaScript函数是一种可重复使用的代码块,它接受输入值(参数)、执行特定任务,并返回输出值。 1. 声明函数 function greet(name) {return "Hello, " + name + "!"; }console.log(greet("Alice")); // 输出: Hello, Alice! console.log( t…...

SQL INSERT INTO 语句详解

SQL INSERT INTO 语句详解 引言 SQL&#xff08;Structured Query Language&#xff09;是数据库管理系统的标准语言&#xff0c;用于处理数据库中的数据。在SQL中&#xff0c;INSERT INTO 语句是用于向数据库表中插入新记录的重要命令。本文将详细介绍 INSERT INTO 语句的用…...

为什么可视化大屏越来越多应用3D元素呢?

现在可视化大屏应用3D元素越来越普及了&#xff0c;背后的原因是什么呢&#xff1f;3D元素相较于2D元素有什么优势&#xff1f;应用3D元素涉及到哪些技术呢&#xff1f;大象数据工场通过本文与大家分享一下。 一、3D元素普及的原因是什么&#xff1f; 可视化大屏应用中使用3D…...

Github Webhook 以及主动式

Github配置 GitHub 默认支持两种 Content-Type: application/json application/x-www-form-urlencoded 特别要注意 Content-Type 我们选择: application/json Flask代码 import os import shutil import subprocess from flask import Flask, request, jsonifyapp = Fla…...

MySQL的基础语法1(增删改查、DDL、DML、DQL和DCL)

目录 一、基本介绍 二、SQL通用语法 三、SQL分类(DDL、DML、DQL、DCL) 1.DDL 1.1数据库操作 1.2表操作 1.2.1表操作-查询创建 1.2.2表操作-数据类型 1&#xff09;数值类型 2&#xff09;字符串类型 3&#xff09;日期时间类型​编辑 4&#xff09;表操作-案例 1.2.3…...

基于 SpringBoot 的火车订票管理系统

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…...

c#的反射和特性

在 C# 中&#xff0c;反射&#xff08;Reflection&#xff09;和特性&#xff08;Attributes&#xff09;是两个强大的功能&#xff0c;它们在运行时提供元编程能力&#xff0c;广泛用于框架开发、对象映射和动态行为扩展。以下是对它们的详细介绍&#xff0c;包括定义、用法、…...

MaxEnt物种分布建模全流程;R+ArcGIS+MaxEnt模型物种分布模拟、参数优化方法、结果分析制图与论文写作

融合R语言的MaxEnt模型具有以下具体优势&#xff1a; 数据处理高效便捷 &#x1f4ca;强大的数据预处理功能&#xff1a;R语言提供了丰富的数据处理工具&#xff0c;能够轻松完成数据清洗、筛选、转换等操作&#xff0c;为MaxEnt模型提供高质量的输入数据。 &#x1f310;自动…...

【AI插件开发】Notepad++插件开发实践:从基础交互到ScintillaCall集成

一、背景与目标 在文本编辑器领域&#xff0c;Notepad凭借其轻量级特性和强大的插件生态&#xff0c;成为开发者群体中的热门选择。作为基于Scintilla组件构建的编辑器&#xff08;Scintilla是开源的代码编辑控件&#xff0c;被Notepad、Geany等知名工具广泛采用&#xff09;&…...

TCP/IP协议的应用层与传输层

TCP/IP协议簇是互联网的核心通信框架&#xff0c;定义了数据如何在网络中封装、寻址、传输和路由&#xff08;确定数据包从源主机到目标主机的传输路径的过程&#xff09;。 应用层 直接面向用户和应用&#xff0c;负责实现网络服务的具体功能&#xff08;如网页浏览、文件传输…...