一句话生成可视化数据报告:Spring AI Alibaba DataAgent 智能报告生成实战(ECharts 图表+Markdown)
【免费下载链接】DataAgentSpring AI Alibaba DataAgent项目地址: https://gitcode.com/gh_mirrors/da/DataAgent
Spring AI Alibaba DataAgent 是基于 Spring AI Alibaba Graph 打造的企业级智能数据分析师,核心能力之一就是智能报告生成:你只需用一句话提问,它就能自动完成取数、分析,并输出包含 ECharts 交互式图表的 Markdown 可视化数据报告。对于想快速落地"自然语言问数 + 可视化报告"场景的新手来说,这是目前门槛最低的开源方案之一。
📌 智能报告生成是什么?
传统 BI 工具需要拖拽组件、配置数据集,而 DataAgent 的做法完全不同:报告由大模型自动撰写,图表由 ECharts 配置驱动渲染。整个链路可以概括为:
- 用户输入一句自然语言问题
- Agent 规划分析步骤、生成并执行 SQL
- 报告节点汇总查询结果,调用大模型生成 Markdown 报告
- 报告中的 ECharts 图表以代码块形式嵌入,前端实时渲染为交互式图表
运行页面底部可以看到"简版报告"开关,开启后对话流中就会直接呈现 AI 生成的分析报告。
🏗️ 项目架构一览
在动手之前,先花 30 秒了解一下整体架构,帮助你理解"报告"是在哪个环节产出的。
核心在于StateGraph Workflow:它把"意图识别 → 规划 → SQL 生成 → SQL 执行 → 报告生成"编排成一条可流式输出的流水线。报告生成的关键角色:
- 后端报告节点:ReportGeneratorNode.java
- 报告提示词模板:report-generator-plain.txt
- 前端 ECharts 渲染插件:markdown-plugin-echarts.ts
- HTML 报告导出模板:report-html-template.ts
更完整的架构说明可以查阅 docs/ARCHITECTURE.md,新手入门可看 docs/QUICK_START.md。
🚀 快速上手:开启报告生成的最短路径
- 配置数据源:在"数据源管理"中接入你的数据库(MySQL、PostgreSQL、Oracle 等),并完成 Schema 初始化
- 配置模型:在"模型配置"中填入兼容 OpenAI 接口规范的对话模型与 Embedding 模型
- 创建 Agent:新建一个数据 Agent,关联好数据源
- 进入对话页:打开运行页面,输入你的业务问题
SQL 执行环节的实时输出示例如下——Agent 会先展示执行的工作流节点,再呈现查询结果表格,为后续报告生成提供数据基础:
📊 报告如何生成?核心提示词揭秘
报告质量的灵魂是提示词。DataAgent 在 report-generator-plain.txt 中定义了严格的输出规范:
- 必须使用 Markdown 语法,标题、段落、列表、表格分层清晰
- 基于真实查询结果推理,不得杜撰数据
- 图表必须输出为语言标记是
echarts的代码块,内容是纯 JSON 格式的 ECharts Option 配置
报告结构建议包含:执行摘要、分析背景、数据分析过程、结果解读、建议与后续行动。
```echarts { "title": { "text": "每日交易额" }, "xAxis": {...}, "yAxis": {...}, "series": [...] }前端通过 [markdown-plugin-echarts.ts](https://link.gitcode.com/i/1cedb4920ab631f3c5823ccf3f0626f7) 识别这类代码块:流式输出未完成时先显示骨架占位,配置完整后即时渲染成 100% 宽、400px 高的交互式图表,支持 hover、缩放等 ECharts 原生交互。 最终生成的报告效果如下,指标卡片、关键发现、SQL 分析过程一应俱全: [](https://link.gitcode.com/i/33c9102d563d13727aaf981b3e6e8ae5) ## 📥 报告导出:Markdown 与 HTML 一键下载 报告不只是"看一看"。在 [ChatMarkdownReport.vue](https://link.gitcode.com/i/a2cc8a45deb892e02c1fc0a918597e87) 组件中,DataAgent 提供了两种格式的导出: | 格式 | 适用场景 | 实现 | | :--- | :--- | :--- | | **Markdown** | 归档到文档系统、二次编辑 | 直接下载 `.md` 文件 | | **HTML** | 直接分享给非技术同事、浏览器打开即见图表 | 由 [report-html-template.ts](https://link.gitcode.com/i/600f9c0fb30a843ee5ab753d1fc37a90) 构建独立页面,内嵌 ECharts 渲染逻辑,离线也能看图 | HTML 模板会自动处理标题、图例与网格的布局冲突(`normalizeChartLayout`),保证图表不挤压文字,开箱即是一份美观的分析报告。 ## 💡 进阶玩法:让报告更贴合业务 - **用户自定义优化指令**:提示词中预留了 `optimization_section` 变量,最高优先级生效,你可以在提示词配置页为报告定制口径、风格 - **Python 深度分析**:开启 Python 分析后,Agent 可在沙箱中执行统计计算,报告中呈现更复杂的洞察(详见 [docs/ADVANCED_FEATURES.md](https://link.gitcode.com/i/acfecbf071116c1d5e9b19c180638ce5)) - **多轮追问**:报告上下文支持继续追问,Agent 会基于同一会话的 Schema 与历史结果作答 ## ✅ 总结 DataAgent 把"数据分析师的一天"压缩成了一次对话:一句自然语言,换回一份带 ECharts 图表的 Markdown 报告,还能一键导出 HTML 直接分享。如果你正在评估自然语言数据分析(NL2SQL + 可视化报告)方向,这个基于 Spring AI Alibaba 的开源项目值得收藏。上手只需三步——**配数据源、配模型、问问题**,剩下的交给 Agent。【免费下载链接】DataAgentSpring AI Alibaba DataAgent项目地址: https://gitcode.com/gh_mirrors/da/DataAgent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考