Skip to content

lekliu/DataAgent-Pro

Repository files navigation

🤖 DataAgent Pro: 自进化 Docker 沙箱数据分析 Agent

Python Version Docker Support License

DataAgent Pro 是一个基于 LangGraphDocker 构建的智能数据分析助手。它不仅能根据用户需求自动编写 Python 代码处理数据,还能在代码运行报错时通过“自省”机制进行自动修复(Self-Healing),直到输出正确的结果。

所有的代码执行都在完全隔离的 Docker 容器中完成,确保了宿主机的安全。


✨ 核心特性 (Key Features)

  • 🔄 自进化修复 (Self-Healing):基于 LangGraph 的状态机架构,当生成的代码运行报错时,Agent 会捕捉 Traceback 自动重试并修正逻辑。
  • 🐳 安全沙箱 (Secure Sandbox):利用 Docker 容器技术,所有 LLM 生成的代码均在隔离环境中运行,防止误删文件或恶意指令。
  • 🔍 智能元数据探测 (Data Profiling):自动分析 CSV/Excel 结构,识别列名、数据类型及样例,为 LLM 提供精准的上下文。
  • 📊 自动化可视化 (Auto-Visualization):根据数据分布自动选择最优图表(柱状图、折线图等)并生成高清 PNG。
  • 👁️ 可观测性 (Observability):集成 Arize Phoenix,全链路追踪 Agent 的思考路径、Token 消耗与节点流转。
  • 🚀 现代 UI 交互:基于 Streamlit 构建的 Web 界面,支持文件拖拽上传与实时思维链展示。

🏗️ 架构设计 (Architecture)

本项目采用 感知 -> 计划 -> 执行 -> 反思 的闭环控制流:

  1. Metadata Inspector: 读取原始文件,提取 Schema。
  2. Coder Node (LLM): 根据 Schema 和需求生成 Pandas 处理代码。
  3. Docker Executor: 启动容器,挂载数据,执行代码并采集日志/图表。
  4. Should Continue (Logic): 判断是否报错。若报错,将错误信息反馈给 Coder 重写;若成功,输出结果。

🛠️ 快速开始 (Quick Start)

1. 克隆仓库

git clone https://github.com/your-username/data-agent-pro.git
cd data-agent-pro

2. 创建环境

建议使用虚拟环境:

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

3. 构建 Docker 运行环境

确保你已启动 Docker Desktop:

docker build -t data-agent-runtime:latest ./docker

4. 配置环境变量

在根目录创建 .env 文件,填入你的 API Key:

# 使用通义千问 (Qwen) 示例
DASHSCOPE_API_KEY=sk-xxxx
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

# 或者使用 OpenAI
# OPENAI_API_KEY=sk-xxxx

5. 启动应用

streamlit run app.py

📈 项目演示 (Demo)

  1. 上传数据:拖入一个混乱的房产信息 CSV。
  2. 输入指令"分析深圳和珠海单价最高的房源,并对比各城市平均房价,处理掉异常值。"
  3. 观察自修复:如果 Agent 第一次写的代码没考虑大小写统一(如 Shenzhen vs shenzhen),它会在发现结果偏差或报错后自动修正代码。
  4. 获取结果:在界面直接查看统计表格与 Matplotlib 生成的图表。

📂 项目结构 (Structure)

├── core/
│   ├── graph/          # LangGraph 状态机定义 (State, Nodes, Workflow)
│   ├── prompts/        # 提示词模板
│   └── tools/          # 核心工具 (Docker沙箱、元数据探测)
├── docker/             # Dockerfile 与 运行环境镜像配置
├── tests/              # 单元测试与 Docker 验证脚本
├── app.py              # Streamlit Web 界面
├── main.py             # 逻辑入口封装
├── generate_test_data.py # 测试数据生成器
└── .env.example        # 环境变量模板

🔧 技术栈 (Tech Stack)

  • LLM: Qwen-Max / GPT-4o
  • Orchestration: LangGraph
  • Sandbox: Docker SDK for Python
  • Observability: Arize Phoenix
  • Frontend: Streamlit
  • Data: Pandas, Matplotlib

🤝 贡献 (Contributing)

欢迎提交 Issue 或 Pull Request!

  1. Fork 本项目
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的改动 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

📄 开源协议 (License)

本项目遵循 MIT License 协议。


⭐️ 如果这个项目对你有帮助,请给一个 Star!

About

DataAgent Pro: An autonomous data analysis agent powered by LangGraph. Features self-healing code execution in a secure Docker sandbox, supporting multi-file relational analysis and interactive visualization.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors