AMA-CMFAI/LAMBDA · 上手攻略
- 仓库:AMA-CMFAI/LAMBDA
- 链接:https://github.com/AMA-CMFAI/LAMBDA
- 分类:AI 数据分析 · LLM Agent · 数据科学工具
- 作者:Tom
- 更新:2026-08-27
是什么
LAMBDA(Large Model Based Data Agent)是一个将自然语言问题转化为可复现数据分析工作流的 AI Agent 系统。用户上传数据集、用自然语言提问,LAMBDA 自动完成数据探索、编写并运行代码、生成可视化、撰写报告,并支持导出为 Jupyter Notebook、Markdown、PDF 或幻灯片。
该项目有对应的发表论文(Sun et al., 2026, JASA),论文讨论了 LLM Agent 在统计与数据科学中的能力边界与不确定性。仓库代码最新为 lambda-v2 分支,前代开源版本在 legacy-open-source 分支(lambda-v1 tag)。
核心定位:比 ChatGPT Code Interpreter 更自主、更持久的数据分析 Agent——每个对话有独立持久工作区,变量和生成文件跨轮次保留,且支持中文报告输出。
解决什么问题
传统数据分析流程:Python 脚本 → Jupyter Notebook → 可视化 → 报告,门槛高、无法对话式迭代。
LAMBDA 的目标:任何懂业务但不懂代码的人,上传 CSV / Excel / 文本文件 → 用自然语言提问 → 获得完整分析报告,无需写一行代码。
典型场景: - 数据分析师想让 AI 快速了解新数据集的结构与主要模式 - 业务人员上传运营数据,想得到中文分析报告 - 研究者需要对多个数据集批量做探索性分析(Autonomous Exploration 模式)
快速安装
环境要求
- Python 3.11+
- Node.js 20+
- npm
- 可选(PDF/中文报告):TeX Live + XeLaTeX
快速启动
# 1. 克隆仓库
git clone https://github.com/AMA-CMFAI/LAMBDA.git
cd LAMBDA
# 2. 配置后端
cp backend/.env.example backend/.env
# 编辑 backend/.env,填入:
# OPENAI_API_KEY=your-api-key
# OPENAI_BASE_URL=https://api.openai.com/v1 # 或其他兼容端点
# MODEL_LIST='["gpt-4o","deepseek-v4-pro"]' # 逗号分隔的模型 ID 列表
# 3. 一键启动(前后端同时运行)
./start.sh
# 4. 打开浏览器
open http://localhost:3000
手动分步启动
# 后端
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 手动编辑 .env 后:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# 前端(另开终端)
cd frontend
npm install
npm run dev
指定端口
BACKEND_PORT=8010 FRONTEND_PORT=3010 ./start.sh
中文报告依赖(可选)
# 自动安装 pdflatex + CJK 字体(需要 sudo)
LAMBDA_AUTO_INSTALL_SYSTEM_DEPS=1 ./start.sh
# 或手动运行脚本
./scripts/install-system-deps.sh
核心用法
基础对话式分析
- 打开 http://localhost:3000
- 选择模型(从
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 会自主完成:数据检查 → 计划分析 → 运行代码 → 生成图表 → 输出报告。适合对多个文件批量做EDA。
模型接入配置
LAMBDA 通过 OpenAI 兼容接口调用模型,支持任意provider(OpenAI / DeepSeek / 本地模型等):
# backend/.env 示例
OPENAI_API_KEY=sk-xxxx
OPENAI_BASE_URL=https://api.openai.com/v1
MODEL_LIST='["gpt-4o","gpt-4o-mini","deepseek-chat"]'
DEFAULT_MODEL=gpt-4o # 可选,指定默认模型
支持的 API 格式:
POST {OPENAI_BASE_URL}/chat/completions
工作区结构
每个对话的工作区路径:backend/data/workspaces/<conversation_id>/
生成的文件(图表、报告、Notebook)在 UI 的 Files 面板中可见。
本地数据库:backend/data/lambda_local.db(对话历史、上传记录)
⚠️ 注意:backend/data/ 目录已在 .gitignore 中,不会被提交。
典型适用场景
| 场景 | 说明 |
|---|---|
| 探索性数据分析(EDA) | 上传 CSV,快速了解分布、缺失值、异常值 |
| 批量报告生成 | Autonomous 模式批量跑多个数据集 |
| 中文报告输出 | 配置 XeLaTeX + CJK 字体后自动生成中文 PDF |
| Jupyter Notebook 导出 | 分析过程导出为可复现的 .ipynb 文件 |
| 多模型对比 | 在 MODEL_LIST 配置多个模型,UI 中快速切换对比结果 |
坑与注意
-
安全边界:
./start.sh默认不做沙箱隔离。LAMBDA 在运行机器上执行任意 Python/Shell 代码,不要直接暴露到公网或对不可信用户开放。 -
PDF/中文报告依赖:若不安装 TeX Live,
./start.sh会在缺少时尝试自动安装(LAMBDA_AUTO_INSTALL_SYSTEM_DEPS=1);手动安装可运行./scripts/install-system-deps.sh。 -
v1 vs v2 分支:当前主线为
lambda-v2(main分支),legacy-open-source分支为 v1。两者 API 和功能差异较大,安装前确认分支。 -
MODEL_LIST 格式:必须是有效 JSON 数组,模型 ID 区分大小写且须与实际 provider 支持的 ID 完全一致;填错模型 ID 会导致调用失败但无明确错误提示。
-
工作区存储:对话产生的大量中间文件默认存在
backend/data/workspaces/,长期使用后可能积累大量文件,建议定期清理。 -
中文 UI:在配置了 CJK 字体后,模型生成中文报告的能力取决于模型本身(非 LAMBDA 本身的翻译)。
与同类对比
| 维度 | LAMBDA | ChatGPT Code Interpreter | GitHub Copilot Data | pandas AI |
|---|---|---|---|---|
| 部署方式 | 自托管(本地运行) | OpenAI 托管 | 云端 | 自托管 / API |
| 中文报告 | ✅(需 TeX) | ❌ | ❌ | ❌ |
| 持久工作区 | ✅(跨轮次保留变量) | ❌(每轮独立) | ❌ | ❌ |
| Autonomous 模式 | ✅(全自动探索) | ❌ | ❌ | ❌ |
| 导出格式 | Notebook / MD / PDF / Slides | 仅 Notebook | ❌ | Markdown |
| 数据格式 | CSV/Excel/文本/更多 | CSV/Excel/图片 | 代码片段 | CSV |
| 许可证 | 学术用途(论文已发表) | 闭源 | 闭源 | AGPL |
核心差异:LAMBDA 是面向数据科学家的完整工作流 Agent(不只是代码执行器),且支持中文报告;自托管意味着数据和代码完全在本地。
一句话推荐结论
如果你需要一款本地部署、中文友好、支持自动探索式数据分析的 LLM Agent 工具,LAMBDA 是目前学术发表背书、代码完整度最高的开源选择——尤其是需要把数据分析结果直接导出为中文 PDF 报告的场景。