基于 Spring Boot + MQ + AIGC + React的智能数据分析平台。区别于传统 BI,用户只需要导入原始数据集、并输入分析诉求,就能自动生成可视化图表及分析结论,实现数据分析的降本增效。
- 后端通过自定义Prompt预设模板,封装用户输入的数据和分析诉求。
- 通过AIGC接口生成可视化图表的JSON配置和分析结论,返回给前端进行渲染。
- 由于AIGC的输入Token限制,采用Easy Excel解析用户上传的XLSX表格数据文件并压缩为CSV格式。
- 实测结果显示,此优化提高了单次输入数据量约20%,同时也实现了成本的有效节约。
- 对用户上传的原始数据文件进行多重校验,包括后缀名、大小、内容等,以确保系统的安全性。
- 利用Easy Excel解析成功的文件基本可以确认其内容的合法性。
- 基于Redisson的RateLimiter实现分布式限流,控制单用户访问频率,防止恶意占用系统资源。
- 使用MyBatis + 业务层构建自定义SQL,实现对每份原始数据的分表存储,提高查询性能和系统的可扩展性。
- 数据分表存储提高了查询灵活性,同时带来了性能的显著提升。
- 基于自定义的IO密集型线程池和任务队列,实现AIGC的并发执行和异步化。
- 提交任务后即可响应前端,大幅度提高用户体验,支持更多用户排队而不是给系统无限压力导致提交失败。
- 引入RabbitMQ分布式消息队列,用于接收和持久化任务消息。
- 通过Direct交换机转发给解耦的AI生成模块消费,提高系统的可靠性,确保任务的可靠处理。
- 利用AI进一步整理和压缩原始数据,提高输入的数据数量和质量。
- 限制用户同时生成图表的数量,防止单个用户抢占系统资源。
- 统计用户生成图表的次数,考虑添加积分系统,用户可以消耗积分进行智能分析。
- 由于图表数据是静态的,考虑使用Redis缓存来提高加载速度。
- 使用死信队列处理异常情况,将图表生成任务置为失败。
- 为任务的执行增加Guava Retrying重试机制,保证系统的可靠性和稳定性。
- 为任务的执行增加超时时间,超时自动标记为失败,提高系统稳定性。
- 考虑根据调用的服务状态来选择当前系统的策略,实现反向压力控制。
- 实现任务执行成功或失败后,通过WebSocket或Server-Sent Events给用户发送实时消息通知,提高用户体验。
部署流程日后更新,请关注。。。
如果你有任何反馈,请联系我:pyptsguas@163.com