eosphoros-ai/DB-GPT · 上手攻略
- 仓库:eosphoros-ai/DB-GPT
- 链接:https://github.com/eosphoros-ai/DB-GPT
- 分类:ai
- 作者:Tom
- 更新:2026-07-11
这是什么
DB-GPT 是一个开源的 Agentic AI 数据助手,服务于"AI + Data"下一代产品。它的核心理念是:用自然语言与你的数据库、文件、数据仓库对话——AI 自动写 SQL、自动执行分析、自动生成图表和报告。
它不只是问答,而是一个能真正执行任务的 Agent:连接数据源 → 理解业务问题 → 规划执行步骤 → 写 SQL/代码 → 沙箱执行 → 产出结论和可视化。
核心能力
| 能力 | 说明 |
|---|---|
| 多数据源连接 | MySQL、PostgreSQL、ClickHouse、Doris、S3、CSV/Excel 等,一站式接入 |
| 自然语言 SQL | 用中文/英文提问,AI 自动生成 SQL 并执行 |
| 代码驱动分析 | 不仅 SQL,还支持 Python 数据分析、沙箱执行 |
| AWEL 工作流 | Agent Workflow Expression Language,定义 Agent 任务流程 |
| RAG + Agent | 结合知识库检索和 Agent 自主决策 |
| 多模型支持 | OpenAI、Anthropic、本地模型(Llama、Qwen 等) |
| 可视化输出 | 生成图表、仪表盘、HTML 报告、分析摘要 |
| 安全沙箱 | 代码在隔离环境中执行,防止数据泄露 |
| Skills 生态 | 可打包领域知识为可复用技能(类似 Agent Tools) |
解决什么问题
传统数据分析的门槛很高:需要懂 SQL、懂 Python、懂可视化工具、懂数据库结构。业务人员提一个数据分析需求,需要工程师写 SQL → 跑数据 → 做图表 → 写报告,流程慢且沟通成本高。
DB-GPT 把这个流程压缩为:业务人员用自然语言提问 → Agent 自动完成从 SQL 到报告的全流程。 同时支持多模型、多数据源,适合企业构建私有化 AI 数据分析平台。
快速安装
macOS & Linux 一键安装(推荐)
curl -fsSL https://raw.githubusercontent.com/eosphoros-ai/DB-GPT/main/install.sh | bash
Docker 部署(推荐生产环境)
# 克隆仓库
git clone https://github.com/eosphoros-ai/DB-GPT.git
cd DB-GPT
# 使用 Docker Compose 启动
docker-compose up -d
# 访问 http://localhost:5670
pip 安装(开发者)
# 创建虚拟环境
python -m venv dbgpt-env
source dbgpt-env/bin/activate # Windows: dbgpt-env\Scripts\activate
# 安装
pip install dbgpt
# 启动(需要配置环境变量)
export DBGPT_HOST=0.0.0.0
export DBGPT_PORT=5670
export LLM_MODEL=chatgpt
export OPENAI_API_KEY=your-api-key
dbgpt start
手动源码安装(完整功能)
git clone https://github.com/eosphoros-ai/DB-GPT.git
cd DB-GPT
# 安装依赖
pip install -e .
# 或使用 requirements.txt
pip install -r requirements.txt
# 启动
dbgpt server
# 访问 http://localhost:5670
环境要求:Python ≥ 3.9(建议 3.10+),推荐 8GB+ RAM 用于本地模型。
核心用法
1. Web 界面:自然语言查询数据库
安装并启动后,浏览器打开 http://localhost:5670:
- 连接数据源:在界面添加数据库连接(MySQL、PostgreSQL 等),填入 host、port、用户名、密码
- 自然语言提问:例如 "过去30天每日活跃用户数是多少?"
- AI 自动流程:解析意图 → 写 SQL → 执行 → 生成图表 → 输出结论
- 下载/分享:可导出图表、报告或 SQL 本身
2. Python API:嵌入数据分析流程
from dbgpt import DGPTServer
# 初始化
server = DGPTServer(
model="gpt-4o-mini", # 或本地模型如 "Qwen/Qwen2-7B"
api_key="your-openai-key",
db_conn="mysql://user:pass@localhost:3306/mydb"
)
# 自然语言查询
result = server.query("过去30天每日活跃用户数是多少?按天显示")
print(result["answer"]) # AI 给出的结论
print(result["sql"]) # 生成的 SQL
print(result["chart"]) # 图表 URL 或 base64
3. 使用 AWEL 定义 Agent 工作流
AWEL(Agent Workflow Expression Language)是 DB-GPT 的工作流定义语言:
from dbgpt.awel import workflow, Task
@workflow
def sales_analysis():
# 1. 从 MySQL 拉取销售数据
data = Task("mysql_query",
sql="SELECT date, amount FROM sales WHERE date >= '2024-01-01'")
# 2. 用 Python 计算月环比
analysis = Task("python_analysis",
data=data,
script="""
import pandas as pd
df = pd.DataFrame(data)
df['month'] = df['date'].dt.to_period('M')
result = df.groupby('month')['amount'].sum().pct_change()
return result
""")
# 3. 生成图表
chart = Task("chart_generation", data=analysis, type="line")
# 4. 输出报告
return Task("report_summary", chart=chart, template="sales_monthly")
sales_analysis().run()
4. 多数据源联合查询
# 同时连接 MySQL(业务数据库)和 S3(日志数据)
result = server.query(
"将用户表和最近一周的行为日志做关联分析,找出活跃但未转化的用户",
sources=["mysql:mydb.users", "s3:logs/2024/"]
)
5. 私有本地模型部署
# 使用 Ollama 或 vLLM 部署本地模型,DB-GPT 可直接对接
export LLM_MODEL=llama3
export LLM_MODEL_TYPE=ollama
export OLLAMA_BASE_URL=http://localhost:11434
dbgpt start
典型适用场景
| 场景 | DB-GPT 适用度 |
|---|---|
| 业务自助分析 | ★★★★★ 业务人员自然语言提问,工程师零介入 |
| 数据质量检测 | ★★★★☆ 自动生成数据剖析报告 |
| 跨数据源分析 | ★★★★☆ 一句话关联多个数据库/文件 |
| 财务/运营报告自动化 | ★★★★★ 定时生成报告,推送给相关人 |
| 私有化 AI + Data 平台 | ★★★★★ 完全自托管,数据不出境 |
| SQL 生成与审核 | ★★★★☆ AI 写 SQL,减少手写错误 |
坑与注意
-
数据安全是核心考量:DB-GPT 执行 SQL 和代码需要对你的数据库有读写权限。务必在隔离环境中使用,不要直接连生产库。沙箱执行能降低风险,但无法完全杜绝误操作。
-
SQL 生成准确性:AI 生成的 SQL 不保证 100% 正确,特别是复杂 JOIN、嵌套子查询。生产环境建议开启 SQL 审核步骤。
-
中文自然语言理解:DB-GPT 对中文支持相对较好(社区有大量中文用户),但复杂业务术语可能理解偏差,建议用清晰的问题描述。
-
多数据源连接配置较复杂:首次配置数据源(尤其是非标准数据库或 S3)需要仔细阅读文档,连接串格式有要求。
-
本地模型性能:使用 Llama、Qwen 等开源本地模型时,速度和效果取决于模型规模和量化级别。7B 模型响应快但质量有限,70B 模型效果好但需要 GPU。
-
依赖兼容性问题:部分版本对
transformers、torch版本有要求,建议使用官方 Docker 镜像避免依赖地狱。 -
更新频率高:DB-GPT 活跃开发中,版本更新可能带来 breaking changes,升级前建议查看 GitHub Releases 和 Changelog。
与同类对比
| 项目 | 定位 | 优势 | 不足 |
|---|---|---|---|
| DB-GPT | AI 数据助手(自然语言 → 执行) | 中文友好、私有化部署成熟、AWEL 工作流 | 生态比 OpenAI plugins 窄 |
| ChatSQL | 自然语言转 SQL | 轻量、专注 SQL 生成 | 非完整 Agent,无法执行分析 |
| DBChat | 数据库对话界面 | 简单易用 | 功能有限 |
| Vanna.ai | SQL 生成+RAG | RAG 增强准确性,开源 | 非完整 Agent 架构 |
| SQLChat | ChatUI for DB | 开源、可私有部署 | 偏简单问答,非完整分析流程 |
| MindsHub Cowork | 全流程 AI 工作空间 | 有 Artifacts 发布能力 | 非专注数据分析 |
| Haystack | LLM 编排框架 | 组件丰富、Pipeline 透明 | 非开箱即用的数据助手 |
DB-GPT 的核心差异:专注"自然语言 → 可执行数据分析"这一窄而深的场景,AWEL 工作流 + 沙箱执行 + 多数据源,是目前该方向最完整的开源方案。
一句话推荐结论
如果你需要一个能直接对接业务数据库、用自然语言驱动数据分析、同时支持私有化部署的 AI 助手,DB-GPT 是目前开源生态中完成度最高的选项——特别适合企业构建内部 BI 助手或数据团队的智能化提效工具。
来源
- GitHub:https://github.com/eosphoros-ai/DB-GPT
- 官方文档:https://db-gpt.readthedocs.io/(或查 GitHub docs/ 目录)
- Docker 部署:https://github.com/eosphoros-ai/DB-GPT/blob/main/docker/
- AWEL 文档:查 GitHub 仓库
awel/目录 - Discord 社区:链接见 GitHub README
不确定处:一键安装脚本 URL (
install.sh) 建议在 GitHub README 页面实时核实,因仓库活跃可能导致路径变化。Docker 镜像名和版本以官方docker-compose.yml为准。生产环境部署前建议阅读官方部署安全指南,确认最新版本有无已知 CVE。AWEL 语法细节请以仓库内awel/目录下的文档为准。