Skip to content

TheMatrix-ion/Data_analyst_agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📊 AI 数据分析助手 (Data Analyst Agent)

一个基于 LLM 驱动的智能商业数据分析助手,支持自然语言查询、自动代码生成、执行和深度商业洞察分析。

✨ 主要功能

  • 自然语言查询:用自然语言提出数据分析需求,无需编写代码
  • 自动代码生成:基于 Qwen2.5-Coder 模型自动生成 Python 分析代码
  • 智能执行引擎:安全执行 Python 代码并处理错误,支持自动重试(最多5次)
  • 跨表分析:支持多表 merge 操作,进行复杂的商业数据分析
  • 数据可视化:自动生成图表(支持 matplotlib)
  • 商业洞察生成:基于分析结果生成智能商业洞察
  • 对话历史:保留完整的分析历史和之前的错误纠正信息

🏗️ 系统架构

项目采用 LangGraph 工作流,包含三个主要节点:

用户输入 → Coder → Executor → Analyst → 输出结果
           ↓        ↓
         生成代码   执行代码
                   (出错时回退到 Coder 重试)

节点说明

  1. Coder 节点:利用 Qwen2.5-Coder 模型生成 Python 代码

    • 动态加载数据目录信息
    • 参考历史错误信息进行纠错
    • 确保代码遵循严格的格式约束
  2. Executor 节点:执行生成的代码

    • 使用 PythonAstREPLTool 安全执行代码
    • 捕获运行时错误
    • 支持绘图(matplotlib)
    • 错误时触发重试机制
  3. 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 服务,并拉取所需模型:

ollama pull qwen2.5-coder  # 代码生成模型
ollama pull llama3.1       # 洞察分析模型

运行应用

streamlit run app.py

应用将在浏览器中打开,默认地址:http://localhost:8501

📖 使用指南

步骤 1:上传数据

  1. 在左侧边栏点击"上传 CSV 文件"
  2. 选择一个或多个 CSV 文件上传
  3. 系统会自动加载数据并显示可用表名

步骤 2:提出分析问题

在聊天框中输入自然语言问题,例如:

  • "列出销量最高的前5个产品"
  • "计算每个卖家的平均评分"
  • "统计不同城市的订单数量并绘制柱状图"
  • "分析2023年和2024年的销售增长趋势"

步骤 3:查看结果

系统会自动:

  1. 生成 Python 代码
  2. 执行代码并获取结果
  3. 生成数据可视化(如有需要)
  4. 提供商业洞察

可以在结果页面"查看 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() 读取本地文件,防止意外文件访问

📝 注意事项

  1. 模型依赖:需要本地运行 Ollama 和对应的 LLM 模型
  2. 性能考虑:首次查询时间可能较长(30-60秒),取决于硬件配置
  3. 内存管理:大型数据集可能占用较多内存
  4. 错误重试:自动重试会增加查询时间,但提高成功率

📄 许可证

MIT License

👨‍💻 开发信息

  • 框架版本:LangGraph 0.1+,Streamlit 1.28+
  • Python 版本:3.8+
  • 最后更新:2026年2月

🤝 贡献

欢迎提交 Issue 和 Pull Request!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages