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

AI大模型探索之路-实战篇9:探究Agent智能数据分析平台的架构与功能

系列篇章💥

AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研
AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研
AI大模型探索之路-实战篇6:掌握Function Calling的详细流程
AI大模型探索之路-实战篇7:Function Calling技术实战自动生成函数
AI大模型探索之路-实战篇8:多轮对话与Function Calling技术应用


目录

  • 系列篇章💥
  • 前言
  • 一、平台概览与核心特性
  • 二、架构设计说明
  • 三、数据字典说明
  • 四、指标字典说明
  • 五、平台技术选型
  • 六、项目调研
  • 七、核心功能分析
  • 结语


前言

随着数据量的激增和业务复杂性的提升,企业和组织对高效、精准的数据分析工具的需求日益增强。智能数据分析平台因此应运而生,它结合了最新的人工智能技术,尤其是大型语言模型,来解析用户的自然语言查询,并实现这些查询到数据库操作的转换。这种创新不仅提升了数据分析的效率和准确性,还极大地改善了用户体验。
在这里插入图片描述

本文将详细介绍这一平台的架构设计、核心技术、以及实现方法。我们的目标是展示如何构建一个功能强大、用户友好且高度可靠的数据分析工具,它将支持交互式数据探索和智能分析,适用于各种业务场景。

通过深入探讨相关的技术细节和应用实例,希望能够提供实施或优化智能数据分析平台时的实用指南和灵感。随着技术的不断进步,我们期待看到这类平台在未来发挥更大的作用,帮助企业和组织实现数据驱动的决策和增长。

一、平台概览与核心特性

智能数据分析平台旨在通过最新的人工智能技术,尤其是大型语言模型,为用户提供一个高效、直观的数据查询和分析工具。该平台允许用户通过自然语言提出数据相关的问题或查询,内部的大型语言模型处理这些自然语言请求,将其转换为数据库可执行的SQL命令。这种转换能力不仅减少了技术门槛,也优化了数据分析的流程,使其更加自动化和智能化。
核心特性包括:

  1. 自然语言支持:用户可以依靠自己的语言表达数据需求,降低了学习SQL等数据查询语言的需求。
  2. 互动式操作:在执行由自然语言生成的SQL命令前,系统会提示用户进行确认,确保查询的准确性,从而避免潜在的错误和风险。
  3. 记忆功能:平台具备一定的长短期记忆能力,能够记住用户的历史查询和数据字典中的业务逻辑,用以提升后续查询的效率和准确性。
  4. 智能分析:利用内置的智能算法和数据字典,平台能够对数据进行深入分析,提供超出简单SQL查询的分析见解。
  5. 稳定性:平台的设计和实施需要考虑到了数据处理的稳定性和可靠性,确保高频及复杂查询的顺畅执行。
  6. 图表展示:提供丰富的数据可视化选项,帮助用户更直观地理解数据和分析结果,增强数据的可读性和影响力。

本次项目实战,主要是落地实践一个智能数据分析平台;用户可以通过自然语言进行提问,由平台调用大模型对自然语言进行解析识别,生成SQL,再由系统自动的调用SQL,生成结果返回给用户,并且SQL执行之前,将要执行的SQL返回给用户界面,由用户进行检查正确与否,确认是否需要执行。类似于前面调研的DB-GPT开源项目; 同时又融入了Open Interpreter开源项目中的确认交互机制。

二、架构设计说明

智能数据分析平台的架构设计充分考虑了系统的可扩展性、稳定性及用户交互的流畅性。在构建此平台时,我们注重以下几个关键能力:

  1. 增强记忆能力: 平台通过维护一份详尽的数据字典和指标字典来实现长期记忆功能。这些字典包含业务逻辑、数据源信息和历史查询,帮助系统更好地理解用户的查询意图并提供准确的数据分析结果。

  2. 任务处理能力: 平台具备将复杂数据分析任务拆解为多个子任务的能力,每个子任务更易于管理和执行。这种任务拆解能力基于平台的推理和逻辑思维能力,能够高效地安排和优化查询流程。

  3. SQL解析与兼容性: 平台设计了先进的SQL解析器,能够兼容不同的数据服务接口,如MySQL、Hive、SparkSQL等。这意味着无论数据存储在何处,平台都能够顺畅地进行数据交互和分析。

  4. 代码解析能力: 对于复杂的数据分析需求,平台能够通过内置或外部的代码库支持高级的数据处理和可视化功能。例如,可以利用Python脚本来进行机器学习分析或使用JavaScript库来生成高级图表。

  5. 交互机制: 平台强调多轮对话和用户交互的重要性,通过提供实时反馈和确认机制,确保用户对数据分析过程的完全控制。此外,交互式界面允许用户逐步细化查询条件,以获得更精确的数据分析结果。

在这里插入图片描述

三、数据字典说明

数据字典是一个记录数据库或数据集中各种数据元素的文档或文件,它提供了对数据元素的详细描述和定义,以及数据的结构、关系和属性等信息。数据字典对于数据管理和数据分析非常重要,它有助于组织、理解和使用数据,以及确保数据的准确性、一致性和可靠性。下面将详细介绍数据字典的作用和功能,包括数据元素的定义、关系表示、数据字典的组成和应用。
数据字典通常由以下几个组成部分构成:

  1. 数据元素定义: 包括数据元素名、标识符、数据类型、长度、含义、取值范围、格式等。
  2. 数据结构和关系: 表明数据元素之间的逻辑和物理关系,如表的关系图、主键和外键关联等。
  3. 数据属性和约束: 描述数据元素的属性和限制,如大小、精度、唯一性约束等。
  4. 数据质量规则和指标: 定义数据的质量标准和要求,如完整性、准确性、一致性等。
  5. 数据安全和权限: 记录数据的敏感性和访问权限,如数据分类、保密级别、用户权限等。
  6. 数据源和血缘追溯: 追踪数据的来源、处理过程和传递路径,保证数据的可追溯性和可信度。
  7. 数据文档和注释: 提供数据的文档和注释,包括数据定义、解释、用途和示例等信息。

四、指标字典说明

  1. 指标字典是什么?
    指标字典在智能数据分析平台中发挥着至关重要的作用,它是业务数据标准化和统一管理的基础。通过定义和标准化关键业务指标,指标字典帮助组织内部建立对业务数据的共识,从而提高数据分析的准确性和效率。
    (比如:什么是日活?GDP是指什么?)
  2. 主要设计目的包括:
    规范命名: 明确并通用的指标命名规则确保了跨部门和团队的数据一致性,避免了因命名差异引起的误解和混淆。
    统一计算口径: 对于每一个指标,指标字典提供了明确的计算公式或逻辑,确保在不同时间点或不同场景下,指标的计算方式保持一致,从而保证数据比较的公正性和准确性。
    核心维度与量度覆盖: 指标字典力求覆盖所有关键的业务维度和量度,这不仅有助于推动数据驱动的业务决策,还确保了数据分析的全面性。

五、平台技术选型

技术模块选型
开发语言Python
大模型选型GPT/GLM4或者私有模型
是否需要微调
额外准备1. 安装MySQL数据库 2. 安装HiveSQL服务(可选)

在这里插入图片描述

六、项目调研

1、ChatGPT Code Interpreter
在这里插入图片描述

1)不能联网
2)仅限于官方内置提供的一些库,不能自己安装其他库,或调用其他库的功能。
3)老生常谈的数据安全话题,如果你想体验自动化的数据分析或者代码编写,就必须把本地文件进行上传。(并且有大小限制)
2、DB-GPT

DB-GPT是一个开源的AI原生数据应用开发框架。目的是构建大模型领域的基础设施,通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单,更方便。
优点:功能强大、支持模型较多、界面体验较好。
缺点:交互体验差、复杂任务拆解能力弱。

3、open-interpreter

Open Interpreter(开放解释器) 开源项目、可以让大语言模型 (LLMs)在本地运行代码(比如 Python、JavaScript、 Shell 等)。安装后,在终端上运行 $ interpreter 即可通过类似 ChatGPT 的界面与 Open Interpreter 聊天。
有点:轻量级,方便、交互体验较好。
缺点:不稳定、复杂任务拆解能力弱。

在前面的篇章中我们已经对DB-GPT和open-interpreter 调研体验过;基本上还存在不同程度的缺陷,无法满足当前数据分析平台的设计。

七、核心功能分析

在这里插入图片描述

虽然大语言模型的知识储量巨大,且具备非常强大的涌现能力,但很多时候我们实际使用大语言模型时仍然会明显的感受到模型能力上的局限,例如模型无法获取最新的信息、模型只能给出文字的建议但无法直接帮我们解决某些问题(如查询数据库,查询商品价格等),因此需要借用大模型的Funcation Calling能力,给大模型添加一个外挂。(前面几个篇章中我们也对OpenAI的Funcation Calling进行了回顾实践和通用函数封装)。

结语

本文主要讲解了智能数据分析平台的总体功能和架构设计,技术选型以及相关核心功能;同时在前面篇章中我们了相关开源项目的调用,以及funcation calling能力的实践;在后面的篇章中我们正式进入智能数据分析平台的代码落地实践阶段。

在这里插入图片描述

🎯🔖更多专栏系列文章:AIGC-AI大模型探索之路

如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!

相关文章:

AI大模型探索之路-实战篇9:探究Agent智能数据分析平台的架构与功能

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…...

本地spark3.5(不整合hive) 集成paimon0.9

spark官网下载集成hadoop的spark包: spark-3.5.1-bin-hadoop3.... 解压后 环境变量配置 SPARK_HOME spark-defaults.conf 中增加一行配置(避免启动spark-sql报错hive元数据连不上): spark.sql.catalogImplementationhive 打开paimon官网: https://paimon.apache.org/docs/mas…...

Linux IO模型深度解析与实战应用

linux的5种IO模型 一、这里IO是什么 操作系统设有用户态与内核态,确保系统安全。应用程序默认在用户态运行,而执行如IO操作等底层任务时,需切换至内核态以高效执行。 服务器从网络接收的大致流程如下: 1、数据通过计算机网络来到了网卡 2、把网卡的数据读取到 socket 缓…...

软件系统开发标准流程文档(Word原件)

目的:规范系统开发流程,提高系统开发效率。 立项申请需求分析方案设计方案评审开发调整测试阶段系统培训试运行测试验收投入使用 所有文档过去进主页获取。 软件项目相关全套精华资料包获取方式①:点我获取 获取方式②:本文末个人…...

嵌入式进阶——外部中断(EXTI)

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 STC8H中断外部中断外部中断编写配置外部中断调用中断触发函数 外部中断测试测试外部中断0测试外部中断2、3或者4 PCB中断设计 STC8…...

flinkcdc 3.0 源码学习之客户端flink-cdc-cli模块

注意 : 本文章是基于flinkcdc 3.0 版本写的 我们在前面的文章已经提到过,flinkcdc3.0版本分为4层,API接口层,Connect链接层,Composer同步任务构建层,Runtime运行时层,这篇文章会对API接口层进行一个探索.探索一下flink-cdc-cli模块,看看是如何将一个yaml配置文件转换成一个任务…...

香橙派 AIpro开发体验:使用YOLOV8对USB摄像头画面进行目标检测

香橙派 AIpro开发体验:使用YOLOV8对USB摄像头画面进行目标检测 前言一、香橙派AIpro硬件准备二、连接香橙派AIpro1. 通过网线连接路由器和香橙派AIpro2. 通过wifi连接香橙派AIpro3. 使用vscode 通过ssh连接香橙派AIpro 三、USB摄像头测试1. 配置ipynb远程开发环境1.…...

Python中正则表达式详解

Python中正则表达式详解 引言 正则表达式是一种用于字符串搜索和操作的强大工具。它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在Python中,正则表达式通过内置的re模块来实现,使得文本处理变得简洁而高效。 正则表达式基础 在深入…...

vue使用EventBus进行跨组件通信

Vue中的EventBus,又称为事件总线,是一种常用的通信模式,它允许在Vue应用程序的不同组件之间进行松耦合的通信,尤其是对于那些没有直接父子关系的组件间的通信非常有用。EventBus基于Vue的自定义事件系统实现,工作原理遵…...

boot项目中定时任务quartz

最近换项目组,发现项目中定时任务使用的是quartz框架,上一篇文章[springboot定时任务]也是使用的quartz,只不过实现方式不同,于是整理下 定时任务常用方法有Quartz,Spring自带的Schedule框架 Quartz基础知识 quartz…...

使用阿里云OSS实现视频上传功能

目录 前言 视频上传 前言 阿里云对象存储服务(OSS)作为一种高可用、高扩展性的云端存储服务,为开发者提供了便捷、安全的对象存储解决方案。本文将介绍如何利用阿里云OSS实现视频上传功能。 视频上传 前期准备请看阿里云OSS文件上传和下载…...

LOTO示波器软件新增导览功能

新版本的大部分型号LOTO示波器的上位机软件我们改成了导航工具条方式。原来的方式是把所有功能都显示在不同的标签页中,这样的优点是非常快捷方便,基本上用鼠标一两次点击就能直达想要的功能设置。但是缺点是不熟练的客户可能记不住各种功能的标签位置在…...

【StructueEngineering】SYMBOL SCHEDULE

文章目录 标记表列SYMBOL SCHEDULELINES线条COLUMN REFERENCE SYMBOL柱参考标记SECTION REFERENCE SYMBOLS剖面参考标记DETAILREFERENCE SYMBOLS详图参考标记GENERALELEVATIONSYMBOLS一般立面图标记MISCELLANEOUS SYMBOLS杂项标记 STEEL FRAMING SYMBOLS钢结构平面图标记COLUMN…...

简化跨网文件传输摆渡过程,降低IT人员工作量

在当今数字化时代,IT企业面临着日益增长的数据交换需求。随着网络安全威胁的不断演变,网关隔离成为了保护企业内部网络不受外部威胁的重要手段。然而,隔离的同时,企业也需要在不同网络间安全、高效地传输文件,这就催生…...

关于python中屏蔽输出

python中屏蔽输出包含屏蔽标准输出(比如打印出来的内容)、屏蔽标准错误(错误信息)还有屏蔽logging信息等。 屏蔽标准输出 import contextlib import oswith open(os.devnull, "w") as devnull:with contextlib.redire…...

螺旋矩阵(算法题)

文章目录 螺旋矩阵解题思路 螺旋矩阵 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]解题思路 模…...

ffmpeg-webrtc(metartc)给ffmpeg添加webrtc协议

这个是使用metrtc的库为ffmpeg添加webrtc传输协议,目前国内还有一个这样的开源项目,是杨成立大佬,大师兄他们在做,不过wili页面维护的不好,新手不知道如何使用,我专门对它做过介绍,另一篇博文&a…...

C语言知识大纲

一、基础 (一)变量定义和使用 (二)数据类型的字节数 (三)变量转换 (四)程序主要结构 (五)if和else判断 (六)switch判断 (七)while循环 (八)do while循环 (九)for循环 (十)基本输入输出 (十一)数组定义和使用 (十二)函数定义和使用 (十三)指针 (十四)多级指针 (十…...

【必会面试题】synchronized锁升级的过程

目录 Java中的synchronized关键字用于实现同步控制,以保护共享资源免受并发访问的影响。为了提高性能,特别是针对多线程环境中的锁机制,Java引入了锁升级的概念。锁升级的过程主要是为了减少锁操作的开销,根据竞争情况动态地调整锁…...

设计模式——工厂三兄弟之简单工厂

1.业务需求 ​ 大家好,我是菠菜。在介绍这期简单工厂设计模式前,我们先来看看这样的需求:制作一个简单的计算器,能够实现控制台输入俩个数以及运算符完成运算。 2.初步实现 实现第一版思路: ​ 创建计算器类&…...

window安装docker\docker-compose

安装前配置 打开控制面板,参照下图打开“启动或关闭windows功能”,Hyper-V 和容器需要启用 程序和功能 启动或关闭windows功能 勾选Hyper-V 安装路径配置 Docker在Windows上的默认安装路径为C:\Program Files\Docker。 以管理员身份运行CMD在D盘,dev文件夹下创建Docker文…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(上)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Go语言--语法基础5--基本数据类型--输入输出(1)

I : input 输入操作 格式化输入 scanf O : output 输出操作 格式化输出 printf 标准输入 》键盘设备 》 Stdin 标准输出 》显示器终端 》 Stdout 异常输出 》显示器终端 》 Stderr 1 、输入语句 Go 语言的标准输出流在打印到屏幕时有些参数跟别的语言…...

通过阿里云 DashScope API 调用通义千问

获取API Key 百炼控制台https://bailian.console.aliyun.com/?tabmodel#/api-key 步骤 1:安装 DashScope SDK pip install dashscope 步骤 2:LangChain 调用 from langchain_community.llms import Tongyi# 设置阿里云 API Key(从环境变…...

JavaScript ES6 解构:优雅提取数据的艺术

JavaScript ES6 解构:优雅提取数据的艺术 在 JavaScript 的世界中,ES6(ECMAScript 2015)的推出为开发者带来了许多革命性的特性,其中“解构赋值”(Destructuring Assignment)无疑是最受欢迎的功…...

链表好题-多种实现

143. 重排链表 - 力扣(LeetCode) 这道题非常经典,很多大厂都作为面试题。 方法一:寻找中点翻转链表合并链表 class Solution { public:void reorderList(ListNode* head) {if (head nullptr) {return;}ListNode* mid middleNo…...

电脑商城--用户注册登录

用户注册 1 用户-创建数据表 1.使用use命令先选中store数据库。 USE store; 2.在store数据库中创建t_user用户数据表。 CREATE TABLE t_user (uid INT AUTO_INCREMENT COMMENT 用户id,username VARCHAR(20) NOT NULL UNIQUE COMMENT 用户名,password CHAR(32) NOT NULL COMME…...

ORM框架(SQLAlchemy 与 Tortoise )

注:本文是python的学习笔记;不是教程!不是教程!内容可能有所疏漏,欢迎交流指正。 框架概述 什么是ORM? ORM(Object-Relational Mapping,对象关系映射)是一种编程技术&a…...

3D Web轻量化引擎HOOPS Communicator的定制化能力全面解析

HOOPS Communicator 是Tech Soft 3D推出的高性能Web工程图形引擎。它通过功能丰富的JavaScript API,帮助开发团队在浏览器中快速添加2D/3D CAD模型的查看与交互功能。该引擎专为工程应用优化,支持大规模模型的流畅浏览、复杂装配的智能导航、流式加载和服…...

提高Python编程效率的工具推荐

在 Python 开发中,选择合适的工具可以显著提升编程效率。以下是一些经过精心挑选的工具,涵盖代码编辑、调试、数据分析等多个方面,希望能帮助你在 Python 开发中事半功倍。 一、集成开发环境(IDE) 1. PyCharm PyCha…...