dataAgent:基于 spring-ai-agentx 的 Java 数据分析智能体产品系统

我要开发同款
proginn17513092962026年09月04日
4阅读

技术信息

语言技术
JavaSpringMybatisSpringCloud
系统类型
算法模型Web
行业分类
人工智能企业服务

作品详情

行业场景

立项原因:当前企业数据分析高度依赖业务同学掌握 SQL,并需要人工梳理表结构、撰写复杂查询、绘制图表。这一链路门槛高、效率低,且数据安全和权限管理分散在应用层,业务方难以自助完成临时分析。
行业场景:面向中小企业的业务、运营、客服和管理者。用户希望通过自然语言直接查询业务数据库,由系统自动理解表结构、生成 SQL、执行查询并返回带图表的数据分析报告,覆盖电商订单分析、运营指标看板、客服应答支持、跨部门数据洞察等典型场景。

功能介绍

dodo-agentx 是一个基于 spring-ai-agentx 框架的 Java 数据分析智能体,覆盖五大核心能力:

1. data-agent 自然语言数据分析:自动查看表结构、生成 SQL、SQL 安全校验、执行查询,结合数据权限与敏感字段脱敏,输出可直接交付的数据报告,并自动生成 ECharts 图表上传到 MinIO 返回图片 URL,支持复杂计算(环比、占比、贡献度等)。
2. 用户与权限管理:基于 Sa-Token 实现登录、退出、当前用户查询;内置用户、角色、部门表,配置 ALL、DEPT_AND_SUB、DEPT、SELF 四种数据范围,用两个账号即可对比权限差异效果。
3. Skills 管理:支持 Skills 列表展示、启用、停用、上传、删除,本地 skills 目录与数据库双向同步,内置 data-analysis、skill-creator 等示例。
4. 文件问答:支持 PDF、Office、Markdown、HTML 等格式文件上传、解析、预览、多轮追问;小文件直读,大文件自动切分并通过 PgVector 向量检索;支持图片多模态理解。
5. 联网查询:通过 Tavily MCP 做实时联网搜索,前端可一键开关,关闭时不注入搜索工具。

项目实现

我负责的工作:基于 spring-ai-agentx 框架,从零搭建 dodo-agentx 项目,独立完成以下模块。

1. data-agent 主链路:设计 ListTablesTool → DescribeTablesTool → GenerateSqlTool → ValidateSqlTool → ExecuteSqlTool 的多步工具编排,使用 JSqlParser 做 SQL 安全校验,仅放行只读查询并强制 LIMIT。
2. 数据权限与脱敏:在 MyBatis-Plus 拦截器中按用户数据范围改写 SQL,结合敏感字段注解在结果映射阶段返回脱敏值。
3. 复杂计算与图表:通过 CalculateTool 用 exp4j 算环比/占比;通过 mcp-echarts MCP 服务生成图表并上传 MinIO。
4. 文件问答:自实现文件解析、分块、PgVector Embedding 与多轮追问;通过 Spring AI MCP 客户端接入 Tavily 联网搜索。

技术栈与亮点:JDK 21 + Spring Boot 3 + Spring AI + MyBatis-Plus + JSqlParser + PgVector + MinIO + Sa-Token;Reactive 流式输出、Spring AI Tool Calling、MCP 多协议集成、自研权限模型。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论