AMA-CMFAI/LAMBDA · 上手攻略
- 仓库:AMA-CMFAI/LAMBDA
- 链接:https://github.com/AMA-CMFAI/LAMBDA
- 分类:AI · 数据分析 · 多智能体
- 作者:Tom
- 更新:2026-08-27
是什么
LAMBDA(Large Model Based Data Agent)是一个无需编程即可完成数据分析的多智能体系统,由香港理工大学团队开发,2026 年发表于统计学期刊 Journal of the American Statistical Association(JASA)。
其核心设计围绕两个 Agent 角色展开:
- Programmer Agent:接收自然语言指令,生成并执行 Python 代码
- Inspector Agent:当代码执行出错时,提供调试建议,驱动 Programmer 自我修正
用户上传数据集(CSV、Excel、文本等),用自然语言提问,LAMBDA 自动完成:数据探索 → 写代码 → 执行 → 调试(如有错)→ 可视化 → 生成报告,全程无需手动写代码。
仓库同时包含完整可运行的 Web 应用(React 前端 + FastAPI 后端),可直接本地部署使用。
解决什么问题
传统数据分析工具(Excel、SPSS、Python pandas)要求用户具备编程或统计知识;LLM 数据分析工具又常因代码执行错误陷入死循环。LAMBDA 通过双 Agent 循环机制,在可解释性和**自主纠错」之间找到平衡:
- Code Generation:Programmer Agent 将自然语言指令转化为可执行 Python 代码
- Self-Correction Loop:Inspector Agent 监测执行错误,Programmer 重新生成,最多重试 N 轮(默认 N=3,可配置)
- User-in-the-Loop:用户可随时介入干预操作循环,处理异常边缘情况
快速安装
环境要求
- Python 3.11+
- Node.js 20+
- npm
- (可选)TeX Live + XeLaTeX,用于 PDF 报告和中文报告输出
方式一:一键启动(推荐)
git clone https://github.com/AMA-CMFAI/LAMBDA.git
cd LAMBDA
cp backend/.env.example backend/.env
# 编辑 backend/.env,填入 OPENAI_API_KEY、OPENAI_BASE_URL、MODEL_LIST
./start.sh
# 访问 http://localhost:3000
方式二:手动分步启动
# 后端
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 配置 API 密钥
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# 前端(新开 terminal)
cd frontend
npm install
npm run dev
环境变量配置
在 backend/.env 中必须配置:
OPENAI_API_KEY=your-api-key
OPENAI_BASE_URL=https://api.openai.com/v1 # 或其他兼容端点
MODEL_LIST='["gpt-4o", "gpt-4o-mini"]' # JSON 数组,首个为默认模型
中文报告支持(可选)
# 安装 XeLaTeX + CJK 字体
LAMBDA_AUTO_INSTALL_SYSTEM_DEPS=1 ./start.sh
# 或手动运行
./scripts/install-system-deps.sh
自定义端口
BACKEND_PORT=8010 FRONTEND_PORT=3010 ./start.sh
核心用法
Web UI 操作流程
- 打开
http://localhost:3000 - 从右上角模型选择器选择要使用的模型(需先在
.env配置MODEL_LIST) - 上传数据文件(CSV / Excel / 文本),或直接使用示例数据集
- 用自然语言描述分析需求,例如:
Analyze this dataset, identify the main patterns, create visualizations,
and write a report with the most important findings.
- 开启 Autonomous Exploration 模式,LAMBDA 将自主完成数据探索、代码执行、可视化、报告生成全过程
自主探索(Autonomous Exploration)
这是 LAMBDA 最核心的特性——完全自主的多轮分析循环:
用户上传数据 + 提问
→ Programmer 生成代码
→ Inspector 检查执行结果
→ 若出错:反馈给 Programmer 重试(最多 N 次)
→ 若成功:生成图表、报告
→ 输出:Markdown 报告 / Jupyter Notebook / PDF
工作空间结构
每个对话有独立的工作空间:
backend/data/workspaces/<conversation_id>/
生成的文件(图表、报告、Notebook)在 UI 的 Files 面板中展示。数据文件统一存储在:
backend/data/
lambda_local.db # SQLite 数据库(对话、上传记录)
uploads/ # 用户上传文件
workspaces/ # 各对话工作空间
导出格式
- Jupyter Notebook(
.ipynb) - Markdown 报告(
.md,可含图表) - PDF 报告(需要 XeLaTeX)
- 幻灯片(需要 XeLaTeX)
API 模式(后端独立使用)
直接调用 FastAPI 后端:
curl -X POST http://localhost:8000/api/analyze \
-H "Content-Type: application/json" \
-d '{"dataset_path": "data/workspaces/xxx/data.csv", "question": "What are the main patterns?"}'
典型适用场景
| 场景 | 说明 |
|---|---|
| 数据探索 | 上传陌生数据集,快速了解分布、缺失值、相关性 |
| 自动化报告 | 周期性数据分析报告生成,减少手工劳动 |
| 非程序员自助分析 | 业务人员直接用自然语言提问,无需 Python 基础 |
| 论文数据复现 | 给定数据集和假设,生成可复现的分析代码 |
| 教学演示 | 展示 LLM Agent 的代码生成 + 自我纠错能力 |
坑与注意
⚠️ 安全边界
LAMBDA 在运行机器上执行任意 Python/Shell 代码。不要将后端直接暴露给不可信网络,建议内网部署或添加沙箱隔离层(如 Docker 容器权限限制)。
⚠️ 中文报告依赖项
中文报告和 PDF 导出必须安装 TeX Live + XeLaTeX + CJK 字体,否则中文内容会显示为空白。未配置时建议导出 Markdown 格式。
端口占用
如果 3000 或 8000 端口已被占用,start.sh 会自动选择下一个可用端口。实际 URL 会写入 ~/.ima2/server.json(注:此路径是 ima2-gen 的配置路径,LAMBDA 的工作空间信息在 backend/data/ 下)。
模型兼容性
LAMBDA 通过 OpenAI 风格的 /chat/completions 接口调用模型,兼容以下端点:
- OpenAI 官方 API
- Azure OpenAI
- 本地兼容模型(如 vLLM、Ollama)需自行配置 OPENAI_BASE_URL
⚠️ 部分开源模型(如 Llama)在复杂代码生成任务上表现不稳定,建议使用 GPT-4o 级别模型。
自我纠错上限
Programmer-Inspector 循环默认最多重试 3 次(T 参数),超过后系统会暂停等待用户介入。长时间运行的自动分析可能触达上限后无输出,此时可手动接管或重试。
旧版开源分支
当前主线代码为 lambda-v2。若需要参考早期开源版本(lambda-v1),切换到:
git checkout legacy-open-source
git checkout lambda-v1
与同类对比
| 项目 | 定位 | 代码执行 | 自我纠错 | UI | 论文发表 |
|---|---|---|---|---|---|
| LAMBDA | 统计/数据分析 Agent | ✅ 本地 Python | ✅ Programmer-Inspector 循环 | Web UI + 报告导出 | ✅ JASA 2026 |
| ChatGPT Code Interpreter | 通用数据分析 | ✅ 云端沙箱 | ❌ 无显式纠错循环 | 托管服务 | ❌ |
| pandas AI | 自然语言 pandas | ✅ 本地执行 | 基础重试 | API / Notebook | ❌ |
| StatsGPT | 统计问题解答 | ❌ 无代码执行 | ❌ | Web | ❌ |
| DataCube | 可视化分析 | ✅ | 部分 | Web | ❌ |
LAMBDA 的核心差异:不是通用聊天,而是专为可重复数据分析工作流设计,双 Agent 纠错机制有论文背书,适合需要生成可复现报告的统计/数据科学场景。
一句话结论
如果你需要让非程序员也能用自然语言完成「上传数据 → 自动分析 → 生成可复现报告」的全流程,LAMBDA 是目前唯一有顶会论文背书、开箱即用的开源方案;本地部署注意安全边界,推荐配合 GPT-4o 以上模型使用。