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 循环机制,在可解释性和**自主纠错」之间找到平衡:

  1. Code Generation:Programmer Agent 将自然语言指令转化为可执行 Python 代码
  2. Self-Correction Loop:Inspector Agent 监测执行错误,Programmer 重新生成,最多重试 N 轮(默认 N=3,可配置)
  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 操作流程

  1. 打开 http://localhost:3000
  2. 从右上角模型选择器选择要使用的模型(需先在 .env 配置 MODEL_LIST
  3. 上传数据文件(CSV / Excel / 文本),或直接使用示例数据集
  4. 用自然语言描述分析需求,例如:

Analyze this dataset, identify the main patterns, create visualizations, and write a report with the most important findings.

  1. 开启 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 以上模型使用。