一个基于OpenAI Agents框架的多智能体数据分析系统,能够自动解析文档、分析数据、生成图表和报告。
- 📄 智能文档解析: 支持PDF、Excel、Word文档的自动解析
- 🧠 AI驱动分析: 使用大语言模型进行数据结构化提取和洞察分析
- 📊 自动图表生成: 根据数据特征自动生成折线图、柱状图、饼图等可视化图表
- 📑 多格式报告: 生成Word、PDF、HTML格式的专业分析报告
- 🔄 多Agent协作: 各专业Agent协同工作,提供端到端的分析流程
系统采用多Agent架构设计:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Data Parser │───▶│ Data Analysis │───▶│ Chart Generator │
│ Agent │ │ Agent │ │ Agent │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
┌─────────────────┐ ┌─────────────────┐ │
│ Report Generator│◀───│ Orchestrator │◀───────────┘
│ Agent │ │ │
└─────────────────┘ └─────────────────┘
- Data Parser Agent: 解析PDF/Excel/Word文档,提取文本和表格数据
- Data Analysis Agent: 使用LLM分析数据,进行结构化提取和洞察挖掘
- Chart Generation Agent: 根据数据特征生成各类可视化图表
- Report Generation Agent: 整合分析结果,生成专业格式报告
- Orchestrator: 协调各Agent的工作流程,管理整体分析pipeline
- Python 3.9+
- OpenAI API密钥
# 克隆项目
cd /workspace/multi_agent_data_analysis
# 安装依赖
pip install -r requirements.txt
# 设置OpenAI API密钥
export OPENAI_API_KEY="your-api-key-here"
# 启动Web应用
python run.py
# 或者直接运行
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
访问 http://localhost:8000 使用Web界面
# 测试分析功能
python run.py test
- 访问 http://localhost:8000
- 点击"Choose Files"上传PDF/Excel/Word文档
- 点击"Start Analysis"开始分析
- 等待分析完成,下载生成的报告
import asyncio
from orchestrator import DataAnalysisOrchestrator
async def analyze_files():
orchestrator = DataAnalysisOrchestrator()
# 分析指定文件
result = await orchestrator.analyze_single_file("path/to/your/file.pdf")
if result["success"]:
print("分析完成!")
print(f"报告路径: {result['reports']['data']}")
else:
print(f"分析失败: {result['error']}")
# 运行分析
asyncio.run(analyze_files())
multi_agent_data_analysis/
├── agents/ # Agent实现
│ ├── data_parser_agent.py
│ ├── data_analysis_agent.py
│ ├── chart_generation_agent.py
│ └── report_generation_agent.py
├── tools/ # 工具类
│ ├── file_parser.py
│ ├── chart_generator.py
│ └── report_generator.py
├── models/ # 数据模型
│ └── data_models.py
├── uploads/ # 上传文件目录
├── outputs/ # 输出文件目录
├── static/ # 静态文件
├── orchestrator.py # Agent编排器
├── main.py # FastAPI主应用
├── run.py # 启动脚本
├── requirements.txt # 依赖列表
└── README.md # 项目说明
POST /upload
Content-Type: multipart/form-data
files: File[]
POST /analyze
Content-Type: application/json
{
"file_paths": ["path1", "path2"]
}
GET /status
GET /download/{filename}
- PDF:
.pdf
- 提取文本和表格数据 - Excel:
.xlsx
,.xls
,.csv
- 解析工作表和数据 - Word:
.docx
,.doc
- 提取文档内容和表格
- 柱状图: 适合分类数据比较
- 折线图: 适合趋势和时间序列分析
- 饼图: 适合比例和构成分析
- 散点图: 适合相关性分析
- 直方图: 适合数据分布分析
- Word文档:
.docx
- 可编辑的专业报告 - PDF文档:
.pdf
- 便于分享的固定格式报告 - HTML页面:
.html
- 可在浏览器中查看的交互式报告
- 框架: OpenAI Agents SDK, FastAPI
- 数据处理: pandas, numpy
- 文档解析: PyMuPDF, python-docx, openpyxl
- 图表生成: matplotlib, seaborn, plotly
- 报告生成: reportlab, jinja2
- Web界面: HTML5, CSS3, JavaScript
- Fork项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建Pull Request
MIT License
如有问题或建议,请提交Issue或联系开发团队。
Multi-Agent Data Analysis System - 让数据分析更智能、更高效!