一个基于 LLM 驱动的智能商业数据分析助手,支持自然语言查询、自动代码生成、执行和深度商业洞察分析。
- 自然语言查询:用自然语言提出数据分析需求,无需编写代码
- 自动代码生成:基于 Qwen2.5-Coder 模型自动生成 Python 分析代码
- 智能执行引擎:安全执行 Python 代码并处理错误,支持自动重试(最多5次)
- 跨表分析:支持多表 merge 操作,进行复杂的商业数据分析
- 数据可视化:自动生成图表(支持 matplotlib)
- 商业洞察生成:基于分析结果生成智能商业洞察
- 对话历史:保留完整的分析历史和之前的错误纠正信息
项目采用 LangGraph 工作流,包含三个主要节点:
用户输入 → Coder → Executor → Analyst → 输出结果
↓ ↓
生成代码 执行代码
(出错时回退到 Coder 重试)
-
Coder 节点:利用 Qwen2.5-Coder 模型生成 Python 代码
- 动态加载数据目录信息
- 参考历史错误信息进行纠错
- 确保代码遵循严格的格式约束
-
Executor 节点:执行生成的代码
- 使用 PythonAstREPLTool 安全执行代码
- 捕获运行时错误
- 支持绘图(matplotlib)
- 错误时触发重试机制
-
Analyst 节点:生成商业洞察
- 基于实际数据结果进行分析
- 用 Llama3.1 模型生成可靠的商业洞察
- 避免编造数据
- Python 3.8+
- Ollama(本地部署 LLM)
pip install -r requirements.txt或手动安装:
pip install streamlit pandas matplotlib
pip install langchain langchain_ollama langchain_experimental
pip install langgraph确保本地运行了 Ollama 服务,并拉取所需模型:
ollama pull qwen2.5-coder # 代码生成模型
ollama pull llama3.1 # 洞察分析模型streamlit run app.py应用将在浏览器中打开,默认地址:http://localhost:8501
- 在左侧边栏点击"上传 CSV 文件"
- 选择一个或多个 CSV 文件上传
- 系统会自动加载数据并显示可用表名
在聊天框中输入自然语言问题,例如:
- "列出销量最高的前5个产品"
- "计算每个卖家的平均评分"
- "统计不同城市的订单数量并绘制柱状图"
- "分析2023年和2024年的销售增长趋势"
系统会自动:
- 生成 Python 代码
- 执行代码并获取结果
- 生成数据可视化(如有需要)
- 提供商业洞察
可以在结果页面"查看 Python 代码"展开框中查看自动生成的代码。
项目包含电商数据集(基于 Olist Brazilian E-Commerce),包含:
- customers.csv:9万+ 客户记录
- orders.csv:10万+ 订单记录
- order_items.csv:订单项目详情
- products.csv:3.2万+ 产品信息
- reviews.csv:10万+ 评价记录
- sellers.csv:3.5千+ 卖家信息
- payments.csv:支付方式和金额信息
- geolocation.csv:地理位置编码
- 代码沙箱:使用 PythonAstREPLTool 在隔离的环境中执行代码
- 数据本地化:所有数据在本地处理,不上传到服务器
- 预加载数据:严禁使用
pd.read_csv()读取本地文件,防止意外文件访问
- 模型依赖:需要本地运行 Ollama 和对应的 LLM 模型
- 性能考虑:首次查询时间可能较长(30-60秒),取决于硬件配置
- 内存管理:大型数据集可能占用较多内存
- 错误重试:自动重试会增加查询时间,但提高成功率
MIT License
- 框架版本:LangGraph 0.1+,Streamlit 1.28+
- Python 版本:3.8+
- 最后更新:2026年2月
欢迎提交 Issue 和 Pull Request!