AI大模型驱动数据分析:利用自然语言实现数据查询与可视化(1)

news2025/1/11 17:58:52

在当今AI驱动的时代,数据分析已成为各行各业不可或缺的能力。然而,传统的数据分析流程通常需要掌握SQL、数据处理和可视化等多项专业技能,这对非技术背景的业务人员来说是一个不小的挑战。

想象一下,当数据中心的负责人打开手机时,只需通过自然语言描述:“帮我分析过去24小时,各业务系统的告警量TOP-10,并以饼状图展示” 。系统便能自动完成从自然语言到SQL查询、数据处理和可视化的全过程。这省去需求提取、原型设计、开发、测试和上线的漫长过程,极大地提高了效率。从这个角度看,人类将进入一个更加高效和智能的时代。

所以,这次主要想跟大家分享如何运用AI大模型进行数据分析,过程中也会带一些示例,方便大家理解。话不多说,主要内容如下:

看看大语言模型的使用手册,会带相关测试案例让大家更好理解。主要内容如下:

哪些大模型可准确无误地生成SQL语句?

大模型实现的数据分析效果预览

AI应用场景测试 | 理解数据库模式 - schema信息

AI应用场景测试 | 提示词设计

一、哪些大模型可准确无误地生成SQL语句?

为了知道目前有哪些大模型可以快且准生成SQL语句,我们测试了以下大模型:

  • QWEN 2.5 - 72B

  • LLAMA 3 - 70B

  • QWEN 2.5 - 32B

  • Gemma2 27B

  • LLAMA 3.2 - 11B

为了支持这些大模型的运行,我的硬件配置如下:

  • 显卡:技嘉 4090

  • CPU:Intel i7 - 14代

  • 内存:DDR 6000 64GB

最终结果显示,参数量在70B以上的模型表现出色,能够准确无误地生成SQL语句。而其他三个模型在语言表达上需要更精确一些。在测试案例中,每一个大模型仅出现一个错误,说明输入的指令需要更贴近数据库模式(schema)的定义。

二、运用大模型实现数据分析效果预览

在看解决方案之前,我们先看一下自然语言大模型生成SQL的效果

上图为使用AI大模型生成的【按照不同的告警来源展示告警数量top10(饼状图)】

上图为使用AI大模型生成的【按照不同的告警来源展示告警数量top10(条形图)】

上图为使用AI大模型生成的【展示业务系统为企业服务总线的告警数量(表格)】

上图为使用AI大模型生成的【展示业务系统为“企业服务总线”的告警数量,告警发生日期为“2020-09-16”(表格)】

上图为使用AI大模型生成的【按天统计业务系统为“企业服务总线"的告警量】

上图为使用AI大模型生成的【按月统计系统为“上海网络”的告警量】

上图为使用AI大模型生成的【展示数据库中有多少不同的alertKPl】

上图为使用AI大模型生成的【展示数据库中独立的alertKPl】

上图为使用AI大模型生成的【展示数据库中指标为app_comp.ap-sys_succ_rate的告警,并按业务系统告警量top_10展示(表格)】

上图为使用AI大模型生成的【展示数据库中指标为app_comp.ap-sys_succ_rate的告警,并按业务系统告警量top_10展示(饼状图)】

三、AI应用场景测试 | 理解数据库模式 - schema信息

我们需要有一个界面能够配置数据库中的schema描述,schema描述对大模型非常有意义,主要体现在以下几个方面:

①结构理解

Schema描述了数据库的结构,包括表的名称、字段名称、数据类型、表之间的关系等。这些信息对于理解用户的自然语言查询至关重要,因为它帮助系统知道数据是如何组织的。

② 意图解析

在将自然语言转换为SQL查询时,系统需要识别用户查询中涉及的具体数据实体。Schema提供了这些实体的定义,使得系统可以准确地将自然语言中的术语映射到数据库中的表和字段。

③查询生成

Schema信息用于生成正确的SQL查询。系统需要知道如何在SQL中引用表和字段,以及如何构建JOIN操作来结合多个表的数据。

④错误检测

通过了解schema,系统可以检测并避免生成无效的SQL查询。例如,如果用户请求的字段在schema中不存在,系统会及时反馈错误信息。

⑤优化查询

Schema信息可以帮助系统优化生成的SQL查询。例如,系统可以利用索引信息来生成更高效的查询。

⑥用户交互

在一些高级的NL2SQL系统中,schema信息可以用于生成用户提示或建议,帮助用户更好地构建查询。

总结 :数据库的schema描述是NL2SQL系统理解和处理自然语言查询的基础,确保生成的SQL查询准确、有效并符合数据库的结构。

理解schema信息示例如下:

本例中我们使用运维领域的一张alertInfo表,来做示例说明如下,这是整个nl2sql的核心,如果涉及多张表以及表和表之间的关系,也参照类似的定义来表达即可:

四、 AI应用场景测试 | 提示词设计

在NL2SQL中,提示词的设计非常重要,通过它可以:

①引导模型生成

提示词用于引导大语言模型(如GPT-4)生成SQL查询。通过精心设计的提示词,模型可以更准确地理解用户的意图,并生成符合语法和语义的SQL语句。

②提高准确性

提示词可以帮助模型更好地解析自然语言中的复杂结构和模糊表达,从而提高生成SQL的准确性。例如,提示词可以明确要求模型识别特定的表、字段或条件。

③ 减少歧义

自然语言往往具有多义性,提示词可以帮助消除歧义,使模型更清晰地理解用户的查询意图。例如,通过提示词明确上下文或限定查询范围。

④增强模型能力

通过提示词,模型可以被引导去利用其内置的知识和推理能力,生成更复杂和优化的SQL查询。这对于处理复杂查询或多表JOIN操作尤为重要。

总结:提示词设计在NL2SQL系统中起到关键作用,它不仅影响SQL生成的准确性和效率,还直接关系到用户的使用体验和系统的实用性。

1.提示词设计参考如下

下面是我这里内置的默认提示词,主要用于关系型数据库查询,大家可以参考参考

 

2.提示词使用注意事项

  • "{schema_content}"即为我们在第一章中定义的schema说明,这是做为做的知识背景说明提供给大模型理解用的。

  • 示例提示词第10点,是最重要的一点,一般在设计这样的系统时,要避免对数据源进行修改,以免对数据造成破坏。

由于篇幅有限,本期的分享暂告一段落,下期将重点跟大家一起来看看【如何运用大模型进行数据可视化展示】以及【如何利用日志进行系统优化】这两块内容,感兴趣的朋友可以提前Mark一下~

注:文章来源见图片水印(布博士--擎创科技产品解决方案专家)

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

  行业龙头客户的共同选择

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

可以右上角一键关注

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

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

下期我们不见不散~

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

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

相关文章

Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作,无多余好说的。 from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text from flask_migrate import Migrateapp Flask(__name__)# 本地基础信息的主机名 HOSTNAME "127.0…

在.NET 6中使用Serilog收集日志

此示例的完整详细信息:https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库,它提供对文件、控制台和其他几个地方的记录。它易于配置,并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…

【设计模式系列】备忘录模式(十九)

目录 一、什么是备忘录模式 二、备忘录模式的角色 三、备忘录模式的典型应用场景 四、备忘录模式在Calendar中的应用 一、什么是备忘录模式 备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不暴露对象内部状态的情况下保存和恢…

网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)

虚拟专用网络(VPN)详细介绍 虚拟专用网络(VPN)通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密: 隧道协议:使用协议如PPTP、L2TP/IP…

面阵相机的使用和注意事项

引言 面阵相机(Area Scan Camera)是一种广泛应用于工业视觉、医学成像、安防监控以及科研领域的图像采集设备。与线扫相机不同,面阵相机的传感器包含多行像素(例如1280x1024、1920x1080等),能够在一个曝光…

Android 车载虚拟化底层技术-Kernel4.19-Android10(双card)技术实现

Android Display Graphics系列文章-汇总 前言 对于Linux和Android来说,只要是多屏(>2)显示的场景都可以显示虚拟化。只是大部分场景对显示稳定性没有要求,系统异常了就都不显示了。但对于容器相关方案,或要求显示隔离的场景,是…

02 conda常用指令

目录 命令快速查找命令详细解释列出当前conda中存在的解释器环境使用指定的解释器环境创建虚拟环境激活自己创建的虚拟环境虚拟环境删除切换回主环境找到你计算机中安装的miniconda3的跟目录找到虚拟环境的目录选择需要删除的虚拟环境文件夹确认环境是否删除 补充删除虚拟环境指…

【C++】赋值运算与变量交换的深入探讨

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯赋值操作符与连续赋值💯常见复合赋值符及其功能💯位操作符中的复合赋值符💯题目一:账户余额练习题目描述代码实现运行结果分…

HarmonyOS:使用HTTP访问网络

HTTP 一、导入http模块 module.json5里添加网络权限 导入http模块 二、创建http请求 创建http请求 import { http } from kit.NetworkKitfunction getNetData() {// 创建数据请求对象let httpRequest http.createHttp() }三、发起请求 请求方法 四、请求示例 GET请求 PO…

KernelShark在ubuntu24.04.01的编译

KernelShark在ubuntu24.04.01的编译 写在前面具体过程装ubuntu24.04.01安装depends下载代码如何编译cmake 输出make 输出 如何安装 初步启动Add the User to the perf Group 简单的使用trace-cmd抓包 来看我的文章,必有所得。 平凡中,总有我帮您踩过的坑…

【48】Android通过libjpeg-turbo库实现图片压缩

(1)公司为节约图片占用服务器存储资源成本,需要对Android手机客户端所传递到云存储服务器中的图片进行压缩,在不影响图片失真程度的情况下,最大限度的压缩图片以节省图片所占用的存储空间。 (2)…

vue.js学习(day 18)

实例:面经基础版 (功能)组件缓存 keep-alive 小结 main.js import Vue from vue import App from ./App.vue import router from ./routerVue.config.productionTip falsenew Vue({ //注入,将路由对象注入到new Vue实例中,建立关联render: h > …

Android 使用 Canvas 和 Paint 实现圆形图片

学习笔记 效果展示: 全部代码: public class YuanActivity extends AppCompatActivity {private ActivityYuanBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 通过 DataBinding 获取布局文件binding …

鸿蒙DevEco Profiler无法识别设备

一、问题 DevEco Studio运行项目处可以识别到设备信息,但是Profiler工具无法识别 二、背景知识 注意 DevEco Profiler工具不支持模拟器进行调优。macOS 12及以上系统版本支持使用DevEco Profiler工具。 知识来源:文档中心 三、解决方案 重启DevEco …

微信小程序版小米商城的搭建流程详解!

很多初学微信小程序语法的同学,可能不知道如何布局和搭建一个项目,下面我将讲解初学者如何搭建项目和注意事项。 目录 一、 app.json的配置 二、引入vant 三、主页banner携带参数跳转 四、点击商品项跳转详情页 一、 app.json的配置 {"pages&q…

第30天:安全开发-JS 应用NodeJS 指南原型链污染Express 框架功能实现审计0

时间轴: 演示案例: 环境搭建-NodeJS-解析安装&库安装 功能实现-NodeJS-数据库&文件&执行 安全问题-NodeJS-注入&RCE&原型链 案例分析-NodeJS-CTF 题目&源码审计 开发指南-NodeJS-安全 SecGuide 项目、 环境搭建-NodeJ…

LongVU:用于长视频语言理解的空间时间自适应压缩

晚上闲暇时间看到一种用于长视频语言理解的空间时间自适应压缩机制的研究工作LongVU,主要内容包括: 背景与挑战:多模态大语言模型(MLLMs)在视频理解和分析方面取得了进展,但处理长视频仍受限于LLM的上下文长…

Observability:用 OpenTelemetry 自动检测 Python 应用程序

作者:来自 Elastic Bahubali Shetti 了解如何使用 OpenTelemetry 自动检测 Python 应用程序。使用 Docker 文件中的标准命令,可以快速检测应用程序,而无需在多个位置编写代码,从而实现快速更改、扩展和更轻松的管理。 更多阅读&a…

JVM, JRE 和 JDK

JRE: Java Runtime Environment, Java 运行环境. JDK: Java Development Kit, Java 开发工具包. JRE JVM 核心类库 运行工具 JDK JVM 核心类库 开发工具 JVM: Java Virtual Machine, Java 虚拟机. 核心类库: Java 已经写好的东西, 直接拿来用即可. 开发工具: 包括 …

Ubuntu 22.04.5 + kubeadm:Kubernetes v1.28.2集群部署企业实战

文章目录 Ubuntu 22.04.5 kubeadm:Kubernetes v1.28.2集群部署企业实战一、环境准备1.1 机器规划1.2 环境配置1.2.1 设置主机名1.2.2 安装依赖工具1.2.3 配置时间同步1.2.4 关闭swap分区1.2.5 停止和禁用防火墙1.2.6 配置内核转发及网桥过滤1.2.7 安装配置ipset及i…