上传数据,用自然语言对话完成"分析 → 出图 → 给洞察"的完整闭环。
算法负责"算得准",LLM 负责"说得人话"。 绝不把数学计算交给 LLM。
- 📊 11 个 Agent 工具 — 查询、图表、数据画像、异动检测、贡献度归因、相关性分析
- 🦆 DuckDB 引擎 — 嵌入式 OLAP,毫秒级聚合,零运维
- 🤖 OpenAI Function Calling — 原生工具调用,稳定可靠(支持 DeepSeek/GLM/Qwen)
- 💬 流式对话 — SSE 实时输出推理过程和结果
- 📁 CSV 上传 — 拖拽导入,自动推断列类型和语义标注
- Python 3.10+
pip install -r requirements.txt# Windows
run.bat
# 或手动
python -m uvicorn app.main:app --host 0.0.0.0 --port 8200打开浏览器访问 http://127.0.0.1:8200/agent-api/page
- 左下角「模型设置」配置 DeepSeek / OpenAI API Key
- 内置示例数据集(销售明细)开箱即用
- 左下角「+ 上传」可导入自己的 CSV
| 工具 | 功能 | 算法 |
|---|---|---|
listDatasets |
列出数据集 | — |
describeDataset |
字段结构(维度/指标/类型) | — |
profileData |
数据画像(分布/缺失/异常/时间范围) | pandas describe |
queryData |
聚合查询(维度×指标×过滤×排序) | DuckDB SQL |
createChart |
生成图表(bar/line/pie/table...) | DuckDB SQL |
detectAnomaly |
异动检测(环比/同比/Z-score) | 偏差 + 3σ |
analyzeContribution |
贡献度归因(维度下钻占比 + Pareto) | groupby + 百分比 |
findCorrelation |
相关性分析(字段间 Pearson) | corr matrix |
explainData |
统计洞察(sum/avg/TopN/异常点) | 统计计算 |
suggestQuestions |
推荐后续分析问题 | — |
buildDashboard |
仪表板蓝图规划 | — |
| 层 | 选型 |
|---|---|
| Web 框架 | FastAPI + Uvicorn |
| 数据引擎 | DuckDB(嵌入式 OLAP) |
| 数据处理 | pandas |
| Agent 编排 | OpenAI SDK function calling |
| LLM | DeepSeek / GLM / Qwen(OpenAI 兼容) |
| 流式输出 | StreamingResponse(NDJSON) |
| 前端 | 单页 HTML(原生 JS + ECharts 渲染) |
agentbi/
├── app/
│ ├── main.py # FastAPI 入口 + 路由
│ ├── config.py # 模型配置(读写 config.json)
│ ├── datasets.py # 数据集语义层 + DuckDB 引擎
│ ├── seeder.py # 启动时自动播种示例数据
│ ├── llm.py # LLM 网志(OpenAI SDK)
│ ├── tools.py # 7 个基础工具 + schema
│ ├── analysis.py # 4 个 P2 分析工具
│ ├── agent.py # Agent 引擎(function calling 循环)
│ ├── store.py # 会话存储(内存 + JSON 持久化)
│ └── static/
│ └── index.html # 前端单页
├── data/ # 运行时数据(gitignore)
├── requirements.txt
├── run.bat
└── README.md
上传数据 → 自动画像 → 异动检测 → 用户选择关注 → 维度下钻归因 → 因果验证 → 汇总报告
每一步由确定性算法工具完成计算,Agent(LLM)负责编排和自然语言表达。
MIT