🎉 项目状态说明:本项目《使用 Next.js 与 Nest.js 构建自动化数据分析 AI Agent》第一季教程已圆满完结! 当前代码库是一个完整的教学级“脚手架”,涵盖了从前端 3D 可视化到后端 AI Agent 编排、消息队列以及 Docker CI/CD 的全栈链路。欢迎 Fork 并基于此演进你的专属商业化产品。
基于 Next.js 与 Nest.js 构建的全栈自动化数据分析 AI Agent。该项目结合了大语言模型 (LLM),实现了从数据上传、自动化清洗、智能分析到可视化图表呈现的完整数据管道。
本项目配套了 5 大模块共 25 节详细的图文教程。以下是本项目的全栈架构思维导图与相关架构图:
本项目配有详细的从零到一构建教程及相关文档,强烈建议结合教程学习项目源码:
👉 使用 Next.js 与 Nest.js 构建自动化数据分析 AI Agent(微信公众号系列文章集合)
👉 DeepWiki 项目文档:AI Data Analyzer
- 多模型支持: 统一的
ILLMService接口,无缝切换 OpenAI、Claude 及本地大模型 (如 Ollama + Qwen)。 - 实时流式反馈: 基于 Server-Sent Events (SSE) 的打字机输出效果。
- Agent 状态推送: 通过 WebSocket (Socket.io) 实时推送 AI Agent 的思考过程与执行步骤。
- 异步任务队列: 集成 BullMQ 与 Redis,支持大规模数据的后台异步处理,不阻塞主流程。
- 严格数据校验: 结合
class-validator与Zod实现强大的数据输入输出验证及 AI 幻觉重试机制。 - 全栈架构: 现代化技术栈组合 (NestJS 后端 + Next.js 前端 + PostgreSQL 数据库)。
- 框架: NestJS
- 语言: TypeScript
- 数据库: PostgreSQL + TypeORM
- 队列缓存: Redis + BullMQ
- 实时通信: SSE + Socket.io
- AI 集成: OpenAI SDK
- 框架: Next.js (App Router) + React 19
- 语言: TypeScript
- 样式: TailwindCSS v4
- 数据获取: SWR
- 2D 可视化: Apache ECharts (
echarts-for-react) + Recharts - 3D 可视化: Three.js + React Three Fiber (
@react-three/fiber,@react-three/drei)
确保你的本地安装了:
- Node.js (>= 22)
- pnpm
- Docker (用于快速启动数据库和 Redis)
项目根目录已有 docker-compose.yml,直接用 Docker Compose 启动即可。
首次启动(创建容器):
# 在项目根目录执行
docker compose up -d这会自动创建并启动 PostgreSQL(ai_analyzer_postgres)和 Redis(ai_analyzer_redis)两个容器。
后续启动(容器已存在):
docker compose up -d
# 或者
docker start ai_analyzer_postgres ai_analyzer_redis停止服务:
docker compose down # 停止并移除容器(数据保留在 volume 中)
docker compose stop # 仅停止容器(不移除)cd backend
pnpm install在 backend 目录下创建 .env 文件,并配置你的大模型 API 密钥及数据库连接信息:
# 数据库配置
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=rain9_ai_data
DATABASE_PASSWORD=rain9_ai_data_admin
DATABASE_NAME=ai_analysis_db
# AI 模型配置 (使用阿里云通义千问)
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
OPENAI_API_KEY=your_api_key_here # 替换为你的阿里云 API Key
OPENAI_MODEL=qwen3.7-plus
# 或者使用本地 Ollama 模型(取消注释以下三行)
# OPENAI_API_KEY=ollama
# OPENAI_BASE_URL=http://localhost:11434/v1
# OPENAI_MODEL=qwen2.5注意:数据库用户名和密码需要与 docker-compose.yml 中的配置一致。项目根目录的 .env 文件中已配置:
POSTGRES_USER=rain9_ai_data
POSTGRES_PASSWORD=rain9_ai_data_admin
POSTGRES_DB=ai_analysis_dbcd frontend
pnpm install启动后端服务(新终端窗口):
cd backend
pnpm run start:dev注:项目中已集成 kill-port,启动时会自动清理占用的 3001 端口。
服务将运行在:http://localhost:3001
启动前端服务(新终端窗口):
cd frontend
pnpm run dev前端服务将运行在:http://localhost:3000
检查后端健康状态:
curl http://localhost:3001/health检查多智能体服务:
curl -X POST http://localhost:3001/multi-agent/health访问前端界面:
打开浏览器访问 http://localhost:3000/dashboard
方式一:通过前端界面
- 访问
http://localhost:3000/dashboard - 滚动到页面底部的"多智能体协作分析"区域
- 输入分析请求(如"分析销售趋势并找出异常月份")
- 点击"开始多智能体分析"按钮
- 观察实时任务状态更新和执行日志
方式二:通过 API 测试
curl -X POST http://localhost:3001/multi-agent/analyze \
-H "Content-Type: application/json" \
-d '{
"prompt": "分析销售趋势并找出异常月份",
"data": [
{"month": "2024-01", "sales": 100000, "region": "北京"},
{"month": "2024-02", "sales": 120000, "region": "北京"},
{"month": "2024-03", "sales": 80000, "region": "北京"},
{"month": "2024-01", "sales": 90000, "region": "上海"},
{"month": "2024-02", "sales": 110000, "region": "上海"},
{"month": "2024-03", "sales": 150000, "region": "上海"}
],
"options": {
"maxSteps": 10,
"enableReview": true,
"enableCharts": true
}
}'方式三:WebSocket 实时测试
使用 Postman 或任意 WebSocket 客户端连接 ws://localhost:3001/multi-agent,发送:
{
"event": "start_multi_analysis",
"data": {
"prompt": "分析销售趋势",
"data": [{"month": "2024-01", "sales": 100000}]
}
}可实时接收 agent_progress、task_update、analysis_complete 事件。
端口被占用:
# 查看占用端口的进程
lsof -i :3000
lsof -i :3001
lsof -i :5432
lsof -i :6379
# 杀掉占用进程
kill -9 <PID>数据库连接失败:
# 检查 PostgreSQL 是否运行
docker ps | grep postgres
# 查看 PostgreSQL 日志
docker logs ai_analyzer_postgresRedis 连接失败:
# 检查 Redis 是否运行
docker ps | grep redis
# 测试 Redis 连接
docker exec ai_analyzer_redis redis-cli ping前端构建错误:
# 清理缓存
cd frontend
rm -rf .next node_modules
pnpm install欢迎提交 Issue 和 Pull Request,一起完善这个 AI Agent 数据分析平台!
本项目基于 MIT License 开源,您可以自由地使用、修改和分发。


