本项目是基于React+Spring Boot+RabbitMQ+AIGC的智能BI数据分析平台。
区别于传统的BI,数据分析者只需要导入最原始的数据集,输入想要进行分析的目标,就能利用AI自动生成一个符合要求的图表以及分析结论。此外,还会有图表管理、异步生成等功能。只需输入分析目标、原始数据和原始问题,利用AI就能一键生成可视化图表、分析结论和问题解答,大幅降低人工数据分析成本。
- 用户登录
- 智能分析(同步)。调用AI根据用户上传csv文件生成对应的 JSON 数据,并使用 ECharts图表 将分析结果可视化展示
- 智能分析(异步)。使用了线程池异步生成图表,最后将线程池改造成使用 RabbitMQ消息队列 保证消息的可靠性,实现消息重试机制
- 用户限流。本项目使用到令牌桶限流算法,使用Redisson实现简单且高效分布式限流,限制用户每秒只能调用一次数据分析接口,防止用户恶意占用系统资源
- 调用AI进行数据分析,并控制AI的输出
- 由于AIGC的输入 Token 限制,使用 Easy Excel 解析用户上传的 XLSX 表格数据文件并压缩为CSV,实测提高了20%的单次输入数据量、并节约了成本。
- 后端自定义 Prompt 预设模板并封装用户输入的数据和分析诉求,通过对接 AIGC 接口生成可视化图表 JSON 配置和分析结论,返回给前端渲染。
- 自动化分析:通过AI技术,将传统繁琐的数据处理和可视化操作自动化,使得数据分析过程更加高效、快速和准确。
- 一键生成:只需要导入原始数据集和输入分析目标,系统即可自动生成符合要求的可视化图表和分析结论,无需手动进行复杂的操作和计算。
- 可视化管理:项目提供了图表管理功能,可以对生成的图表进行整理、保存和分享,方便用户进行后续的分析和展示。
- 异步生成:项目支持异步生成,即使处理大规模数据集也能保持较低的响应时间,提高用户的使用体验和效率。
- 智能数据处理:项目通过AI技术实现了智能化的数据处理功能,能够自动识别和处理各种数据类型、格式和缺失值,提高数据的准确性和一致性。
- Spring Boot 2.7.2
- Spring MVC
- MyBatis + MyBatis Plus 数据访问(开启分页)
- Spring Boot 调试工具和项目处理器
- Spring AOP 切面编程
- Spring Scheduler 定时任务
- Spring 事务注解
- Redis:Redisson限流控制
- MyBatis-Plus 数据库访问结构
- IDEA插件 MyBatisX : 根据数据库表自动生成
- RabbitMQ:消息队列
- AI SDK:鱼聪明AI接口开发
- JDK 线程池及异步化
- Swagger + Knife4j 项目文档
- Easy Excel:表格数据处理、Hutool工具库 、Apache Common Utils、Gson 解析库、Lombok 注解
- React 18
- Umi 4 前端框架
- Ant Design Pro 5.x 脚手架
- Ant Design 组件库
- OpenAPI 代码生成:自动生成后端调用代码(来自鱼聪明开发平台)
- EChart 图表生成
- 使用vue重构前端
- 优化增加更多功能