智能 BI 数据分析平台

news2024/10/6 18:22:56

智能BI平台

作者:猫十二懿

项目介绍

本项目是基于React+Spring Boot+RabbitMQ+AIGC的智能BI数据分析平台。

访问地址:http://bi.kongshier.top

AIGC :Artificial Intelligence Generation Content(AI 生成内容)

区别于传统的BI,数据分析者只需要导入最原始的数据集,输入想要进行分析的目标,就能利用AI自动生成一个符合要求的图表以及分析结论。此外,还会有图表管理、异步生成、AI对话等功能。只需输入分析目标、原始数据和原始问题,利用AI就能一键生成可视化图表、分析结论和问题解答,大幅降低人工数据分析成本。

优势: 让不会数据分析的用户也可以通过输入目标快速完成数据分析,大幅节约人力成本,将会用到 AI 接口生成分析结果

项目架构图

基础架构

基础架构:客户端输入分析诉求和原始数据,向业务后端发送请求。业务后端利用AI服务处理客户端数据,保持到数据库,并生成图表。处理后的数据由业务后端发送给AI服务,AI服务生成结果并返回给后端,最终将结果返回给客户端展示。

优化项目架构-异步化处理

优化流程(异步化):客户端输入分析诉求和原始数据,向业务后端发送请求。业务后端将请求事件放入消息队列,并为客户端生成取餐号,让要生成图表的客户端去排队,消息队列根据I服务负载情况,定期检查进度,如果AI服务还能处理更多的图表生成请求,就向任务处理模块发送消息。

任务处理模块调用AI服务处理客户端数据,AI
服务异步生成结果返回给后端并保存到数据库,当后端的AI工服务生成完毕后,可以通过向前端发送通知的方式,或者通过业务后端监控数据库中图表生成服务的状态,来确定生成结果是否可用。若生成结果可用,前端即可获取并处理相应的数据,最终将结果返回给客户端展示。在此期间,用户可以去做自己的事情。
image

项目技术栈和特点

后端

  1. Spring Boot 2.7.2
  2. Spring MVC
  3. MyBatis + MyBatis Plus 数据访问(开启分页)
  4. Spring Boot 调试工具和项目处理器
  5. Spring AOP 切面编程
  6. Spring Scheduler 定时任务
  7. Spring 事务注解
  8. Redis:Redisson限流控制
  9. MyBatis-Plus 数据库访问结构
  10. IDEA插件 MyBatisX : 根据数据库表自动生成
  11. RabbitMQ:消息队列
  12. AI SDK:鱼聪明AI接口开发
  13. JDK 线程池及异步化
  14. Swagger + Knife4j 项目文档
  15. Easy Excel:表格数据处理、Hutool工具库 、Apache Common Utils、Gson 解析库、Lombok 注解

前端

  1. React 18
  2. Umi 4 前端框架
  3. Ant Design Pro 5.x 脚手架
  4. Ant Design 组件库
  5. OpenAPI 代码生成:自动生成后端调用代码(来自鱼聪明开发平台)
  6. EChart 图表生成

数据存储

  • MySQL 数据库
  • 阿里云 OSS 对象存储

项目特性

  • Spring Session Redis 分布式登录
  • 全局请求响应拦截器(记录日志)
  • 全局异常处理器
  • 自定义错误码
  • 封装通用响应类
  • Swagger + Knife4j 接口文档
  • 自定义权限注解 + 全局校验
  • 全局跨域处理
  • 长整数丢失精度解决
  • 多环境配置

项目功能

  • 用户登录、注册、注销、更新、检索、权限管理、头像上传
  • 图表创建、删除、查询、查看愿数据
  • AI对话创建、删除、查询
  • 订单创建、删除、修改、支付、查询
  • 沙箱支付创建、查询
  • 使用次数修改、新增、充值

单元测试

  • JUnit5 单元测试、业务功能单元测试

项目功能

  1. 用户登录
  2. 智能分析(同步)。调用AI根据用户上传csv文件生成对应的 JSON 数据,并使用 ECharts图表 将分析结果可视化展示
  3. 智能分析(异步)。使用了线程池异步生成图表,最后将线程池改造成使用 RabbitMQ消息队列 保证消息的可靠性,实现消息重试机制
  4. 用户限流。本项目使用到令牌桶限流算法,使用Redisson实现简单且高效分布式限流,限制用户每秒只能调用一次数据分析接口,防止用户恶意占用系统资源
  5. 调用AI进行数据分析,并控制AI的输出
  6. 由于AIGC的输入 Token 限制,使用 Easy Excel 解析用户上传的 XLSX 表格数据文件并压缩为CSV,实测提高了20%的单次输入数据量、并节约了成本。
  7. 后端自定义 Prompt 预设模板并封装用户输入的数据和分析诉求,通过对接 AIGC 接口生成可视化图表 JSON 配置和分析结论,返回给前端渲染。

新增功能

  1. 新增用户注册功能
  2. 新增用户调用次数表,用户注册同时完成插入次数表,当使用AI生成接口时分布式锁对使用次数锁定,次数扣减才释放锁
  3. 新增删除图表/对话结果功能
  4. 新增死信队列,将处理图表的队列绑定到死信队列上,保证消息可靠性,若分析失败,则进入死信,将补偿用户次数
  5. 添加支付宝沙箱支付功能,下单充值AI使用次数完成,使用沙箱进行支付,完成支付功能,支付完成得到对应的使用次数
  6. 新增延迟队列,当下单完成10分钟,还没有支付订单,则会标记为超时订单
  7. 新增用户上传头像功能,使用阿里云对象存储OSS存储图片
  8. 修改前端登录/注册界面
  9. 优化前端显示,效果如下展示
  10. 用户查看原始数据
  11. 新增AI对话,用户提交问题,AI分析解答

BI项目展示

用户登录注册

在这里插入图片描述
在这里插入图片描述

项目首页

image

同步分析数据生成图表

image

异步分析数据生成图表

image

个人图表管理界面

在这里插入图片描述

查看图表原始数据

在这里插入图片描述

AI 问答助手

image

AI 对话管理

image

个人中心

个人信息,修改信息,点击头像修改头像
在这里插入图片描述

个人订单信息
在这里插入图片描述

付款订单
在这里插入图片描述

修改购买数量

在这里插入图片描述

订单交付结果信息查询
在这里插入图片描述

管理员功能

管理员介绍
在这里插入图片描述

用户管理
在这里插入图片描述

修改用户信息
在这里插入图片描述

删除用户
在这里插入图片描述

新增用户
在这里插入图片描述

图表管理
查看所有用户的图表信息,查看图表数据、删除图表
在这里插入图片描述

订单管理、支付管理
在这里插入图片描述
在这里插入图片描述

查询交易信息
在这里插入图片描述

项目BUG

  • AI生成的内容导致查询图表出现报错,由于AIGC得出的结果不一定是JSON数据,导致前端JSON数据格式解析失败
  • 下单了无法支付,目前是使用沙箱环境,只有我手中的沙箱账号才能支付

如果发现新的bug 或者存在问题以上问题请联系作者:https://www.yuque.com/kcsshier

后续项目改造

  • 使用ElasticSearch进行搜索内容,爬取图片、视频等
  • 微服务改造

项目BUG

  • AI生成的内容导致查询图表出现报错,由于AIGC得出的结果不一定是JSON数据,导致前端JSON数据格式解析失败
  • 下单了无法支付,目前是使用沙箱环境,只有我手中的沙箱账号才能支付

如果发现新的bug 或者存在问题以上问题请联系作者:https://www.yuque.com/kcsshier

后续项目改造

  • 使用ElasticSearch进行搜索内容,爬取图片、视频等
  • 加入广告
  • 将项目改造成微服务

🔥🔥🔥需要项目请留言评论。

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

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

相关文章

如何使用ChatGPT构建一个Web应用程序?

围绕ChatGPT的最大卖点之一是它可以成为一种有效的编程工具。其想法是这样的:你用自然语言描述需求,该聊天机器人生成满足该需求的代码。但是ChatGPT在这方面到底有多好呢? 还有什么比亲自测试一下更好的方法呢?我们让ChatGPT从头…

uniapp小程序点击按钮直接退出小程序效果demo(整理)

点击按钮直接退出小程序 <navigator target"miniProgram" open-type"exit">退出小程序</navigator>

ChatGPT蔚然成风,留学生未来何去何从?

2022年的11月30日看似只是普通的一天但在这一天里&#xff0c;一个叫ChatGPT的聊天脚本问世&#xff0c;并在2个月内成为史上最短时间获得一亿用户的应用。 一年后的今天&#xff0c;在佛罗里达州的“珊瑚角高中”&#xff08;美国顶级公立高中&#xff09;里&#xff0c;大量尖…

ArcMap手动新建矢量要素的方式

本文介绍在ArcGIS下属ArcMap软件中&#xff0c;新建点、线、面等矢量要素图层&#xff0c;并对新建图层的空间范围加以划定的方法。 首先&#xff0c;在右侧“Catalog”栏中选择需要存放新建立矢量要素图层的文件夹&#xff0c;右键并选择“New”→“Shapefile...”。 在弹出的…

【C语言】指针笔试题解析

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解指针和数组笔试题解析&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 1. 下面程序的结果是什么&#xff1f; int main() {int a[5] { 1, 2, 3, 4, 5 };i…

闪光激光雷达实现无人驾驶导航

一艘宇宙飞船盘旋在灰色、布满陨石坑的月面上&#xff0c;扫描着它的着陆点&#xff0c;然后&#xff0c;在火箭的火焰中&#xff0c;扬起大量尘埃的火焰中&#xff0c;着陆器“墨菲斯”安全稳定地下降到一个空旷的地方。在布满碎石的岩石表面。 事实上&#xff0c;2014 年的这…

JavaFx学习问题1--图片不显示问题

需要注意的点也就是两个 1.路径问题 如果是绝对路径那么格式是file: 绝对路径 如下图所示   如果不加直接给你报错 如果是相对路径格式是相对于src下的相对路径&#xff0c;但头部不加src 如下图 如果加了src&#xff0c;则跟绝对路径一样&#xff0c;要在前面写个file…

python GUI

Python tkinter快速可视化开发GUI界面指南&#xff1a;详细教程(附带工具)_tkinter 可视化_德宏大魔王的博客-CSDN博客 这个案例&#xff1a; 1、GUI 简介 GUI 有好多实现方式&#xff1b;组件 我们选择tkinter 实现&#xff1b; 2、Tkinter 组件 3、拖拽的方式实现Tkinter…

【操作系统笔记十一】进程间通信

Linux文件系统 inode 节点 &#xff08;index node&#xff09;&#xff1a;给每个文件赋予一个称为 i 节点的数据结构。 inode 一开始是存储在硬盘中的&#xff0c;只有当文件被打开的时候&#xff0c;其对应的 i 节点才加载到内存中。 总结&#xff1a; Linux 中&#xff0c…

Linux的socket通信

关于套接字通信定义如下&#xff1a; 套接字对应程序猿来说就是一套网络通信的接口&#xff0c;使用这套接口就可以完成网络通信。网络通信的主体主要分为两部分&#xff1a;客户端和服务器端。在客户端和服务器通信的时候需要频繁提到三个概念&#xff1a;IP、端口、通信数据&…

SAP FI FS10N排除特定凭证类型

财务要求 需要把CO类型的凭证去掉&#xff0c;经过调试发现 筛选条件在GT_selection 在这个函数里面做个增强试试 *----------------------------------------------------------------------* ***INCLUDE FAGL_FILL_GT_SELECTIONS . *------------------------------------…

全流程ARCGIS Pro技术应用教程

详情点击公众号链接&#xff1a;全流程ARCGIS Pro技术应用教程 前沿 GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关…

shap-Basic SHAP Interaction Value Example in XGBoost

Basic SHAP Interaction Value Example in XGBoost XGBoost中的基本SHAP交互值示例解释没有交互的线性函数SHAP交互值用一次交互解释线性模型SHAP交互值 用到的环境是python3.7&#xff08;基于上一篇文章的环境&#xff09;&#xff0c;然后再装了xgboost和shap&#xff0c;没…

GIT 提交过滤非必要文件

1、git ls-files&#xff1a;该命令会列出Git仓库中管理的所有文件 2、git rm -r -f --cached . -f 是强制删除 最后的点 是删除所有 git rm -r --cached . 3、 进入Preferences->plugins 中下载一个(.ignore)插件  在项目本地new一个(.gitignore)的文件新增需要过滤文…

最全跨境独立站建站详细步骤解析

对于跨境电商卖家来说&#xff0c;无论是规避“鸡蛋放在同一个篮子里”的风险&#xff0c;还是追求更多的销售额和利润&#xff0c;多平台、多站点的布局都是其至关重要的战略。加之市场的变化带来了新的发展机遇&#xff0c;这也使得如今很多出海企业都在抢占独立站新风口。然…

四、线性支持向量机算法(LinearSVC,Linear Support Vector Classification)(有监督学习)

线性支持向量机&#xff0c;Linear Support Vector Classification. 与参数内核为线性的SVC类似(SVC(kernel‘linear’))&#xff0c;但使用liblinear而非libsvm实现&#xff0c;因此在选择惩罚和损失函数时更具灵活性&#xff0c;并能更好地扩展到大量样本 SVC(kernel’linea…

【沐风老师】3DMAX路径拖尾光线刀光效果插件GhostTrails教程

3DMAX路径拖尾光线刀光效果插件GhostTrails&#xff0c;是3dsmax的动画挤出修改器。它非常适合风格化的运动模糊效果、轮胎轨迹、Tron光循环和许多其他用途。 【适用版本】 3dMax2010 - 2024 【安装方法】 1.将对应版本的GhostTrails 插件复制到 3dmax 插件目录&#xff08;如…

原创动画《优弧,你小子!》

&#x1f4a5; 背景 体验效果直接翻到第三章&#xff1a;成果体验 先来介绍一下优弧&#xff1a;掘金平台管理员丨首席客服君丨运营负责人 &#x1f468;‍✈️ 现在优弧到底是妹子还是汉子仍是一个未解之谜&#xff0c;网上众说纷纭。他说&#xff1a;优弧是个200来斤的胖子&a…

AIGC赋能甄知燕千云员工AI助手,升级企业智创之旅

燕千云数智化业务服务平台发布了1.24.0版本&#xff0c;此次版本升级了燕千云智能工单&#xff0c;增加了一键外呼功能&#xff0c;并且优化了在线客服接入了失败通知&#xff0c;满足不同的用户需求&#xff0c;此次还升级了智能助理&#xff0c;知识中心等功能&#xff0c;满…

[计算机入门] Windows附件程序介绍(影音类)

3.12 附件程序介绍(影音类) 3.12.1 附件程序介绍 附件程序是在安装完Windows系统后&#xff0c;系统自带的一些非常常用且重要的软件程序。可以通过下面的方式搜索并打开附件程序(以打开画图程序为例)&#xff1a; 1、点击左下角windows菜单&#xff1a; 2、直接输入要打开…