[DataAgent] DB-GPT 使用指南
0 序
DB-GPT就像一个「会说话、会动手的数据助手/数据分析师」:你只需用日常语言提问,它就能自动将问题转化为 SQL 语句查询数据库,甚至生成数据报表、解读分析结果。无论是企业的数据分析师、软件开发者,还是需要处理本地数据的普通用户,都能通过 DBGPT 大幅提升数据分析与数据处理的效率。
- DB-GPT 是一个开源的、AI原生的【数据应用开发框架】(AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents)。
目的是构建大模型领域的基础设施,通过开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库/数据文件构建大模型应用更简单,更方便。
1 安装部署篇
1.1 源码部署方式
直接通过源码部署 DB-GPT。这是最灵活的方式,适合开发、调试以及自定义集成场景。
- 硬件要求
| 模式 | CPU × 内存 | GPU | 说明 |
|---|---|---|---|
| API proxy | 4C × 8 GB | 无 | 代理模式不使用本地 GPU |
| Local model | 8C × 32 GB | ≥ 24 GB VRAM | 需要支持 CUDA 的 NVIDIA GPU |
step1 克隆/下载项目源码
git clone https://github.com/eosphoros-ai/DB-GPT.git
cd DB-GPT
step2 安装 python 的依赖包与环境管理工具: uv
- 方式1: PyPI (pipx) 方式(官方推荐)
python -m pip install --upgrade pip
python -m pip install --upgrade pipx
python -m pipx ensurepath
pipx install uv --global
- 方式2: 全局安装 uv
//笔者是 Windows Powershell 环境下做的全局安装:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- 验证方法
uv --version
where.exe uv
step3 安装Python依赖
- OpenAI (proxy) 方式 (笔者的选择)
uv sync --all-packages \
--extra "base" \
--extra "proxy_openai" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts"
- DeepSeek (proxy) 方式
DeepSeek 使用 OpenAI 兼容代理,因此所需 extras 与 OpenAI 相同。
uv sync --all-packages \
--extra "base" \
--extra "proxy_openai" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts"
- Ollama (local) 方式
uv sync --all-packages \
--extra "base" \
--extra "proxy_ollama" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts"
- Local GPU (HuggingFace) 方式
uv sync --all-packages \
--extra "base" \
--extra "cuda121" \
--extra "hf" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "quant_bnb" \
--extra "dbgpts"
step4 配置模型 (如:硅基流动)
编辑与你所选 provider 对应的 TOML 配置文件。详情请参考 Model Providers。
笔者选择的 Model Provider: 硅基流动的模型配置 - dbgpt.cn 【推荐阅读】科普博客: 硅基流动(SiliconFlow) : AI大模型时代的基础设施(Model API as Service) - 博客园/千千寰宇
配置 DB-GPT 使用 SiliconFlow 托管模型 API。SiliconFlow 提供统一 API,可接入多种开源模型,并且服务位于国内环境中。
- 前置条件
- 已安装带
proxy_openai扩展的 DB-GPT- 一个可用的 SiliconFlow API key
注册/访问入口: https://account.siliconflow.cn - 硅基流动/SiliconFlow
科普博客: 硅基流动(SiliconFlow) : AI大模型时代的基础设施(Model API as Service) - 博客园/千千寰宇
- 安装依赖
如果 step3 已经做过了,则忽略即可
uv sync --all-packages \
--extra "base" \
--extra "proxy_openai" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts"
- 配置方式
编辑源码目录下
configs/dbgpt-proxy-siliconflow.toml文件:
# Model Configurations
[models]
[[models.llms]]
#name = "Qwen/Qwen2.5-Coder-32B-Instruct"
name = "${env:LLM_MODEL_NAME:-deepseek-ai/DeepSeek-V4-Flash}"
provider = "proxy/siliconflow"
#api_key = "${env:SILICONFLOW_API_KEY}"
api_key = "${env:SILICONFLOW_API_KEY:-sk-xxxxxxxxx}"
api_base = "https://api.siliconflow.cn/v1"
[[models.embeddings]]
#name = "BAAI/bge-large-zh-v1.5"
name="Qwen/Qwen3-Embedding-4B"
#provider = "proxy/openai"
provider = "proxy/siliconflow"
api_url = "https://api.siliconflow.cn/v1/embeddings"
#api_key = "${env:SILICONFLOW_API_KEY}"
api_key = "${env:SILICONFLOW_API_KEY:-sk-xxxxxxxxx}"
[[models.rerankers]]
#name = "BAAI/bge-reranker-v2-m3"
name = "Qwen/Qwen3-Reranker-4B"
provider = "proxy/siliconflow"
#api_key = "${env:SILICONFLOW_API_KEY}"
api_key = "${env:SILICONFLOW_API_KEY:-sk-xxxxxxxxx}"
建议使用环境变量,例如:
export SILICONFLOW_API_KEY="your-siliconflow-api-key"

- 配置解释:可用的LLM模型 (仅供参考,笔者未完全按照这个表格的来)
SiliconFlow 托管了很多开源模型,常见可选模型包括:
| 模型 | 配置名 | 说明 |
|---|---|---|
| Qwen2.5-Coder-32B | Qwen/Qwen2.5-Coder-32B-Instruct |
偏代码场景 |
| Qwen2.5-72B | Qwen/Qwen2.5-72B-Instruct |
通用用途 |
| DeepSeek-V3 | deepseek-ai/DeepSeek-V3 |
推理能力强 |
| GLM-4-9B | THUDM/glm-4-9b-chat |
中英文兼顾 |
最新模型列表和价格请参考 SiliconFlow 官方页面。
- 特殊特性
SiliconFlow 配置还支持 reranker,用于增强 RAG 检索效果:
[[models.rerankers]]
name = "BAAI/bge-reranker-v2-m3"
provider = "proxy/siliconflow"
api_key = "${env:SILICONFLOW_API_KEY}"
step5 启动服务
uv run dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
或: uv run --no-sync dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
若操作系统有网络代理时,需让 db-gpt 工程忽略此代理问题:(网络代理问题是一个坑)
- 方法1 一次性跳过代理(当前终端,最直接、亲测)
$env:NO_PROXY="127.0.0.1,localhost"; uv run dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
$env:NO_PROXY="127.0.0.1,localhost,192.168.31.xx"; uv run --no-sync dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
$env:NO_PROXY="127.0.0.1,localhost,192.168.31.xx"; uv run dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
$env:NO_PROXY="127.0.0.1,localhost,192.168.31.xx"; uv run --no-sync dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
python 的 httpx 认
NO_PROXY:命中豁免列表的目标直连、不走代理;外部网络的请求(SiliconFlow API)仍走 7890(操作系统配置的代理端口) 代理,互不影响。
- 方法2 持久化(新终端都生效,推荐)
setx NO_PROXY "127.0.0.1,localhost,192.168.31.xx"
写入用户级环境变量,新开终端生效(当前终端需手动设一次)。同时查一下
HTTP_PROXY是谁写入的:
[Environment]::GetEnvironmentVariable("HTTP_PROXY","User") # 用户级
Get-Content $PROFILE | Select-String -Pattern "proxy" # PowerShell 启动脚本
如果是代理软件(如 *** 系)注入的用户级变量,去软件设置里关掉 "设置系统代理 / 写入环境变量" 更干净;如果写在
$PROFILE里,删掉那一行即根治。
- 方法3 启动脚本(一劳永逸,适合频繁启动)
保存为
F:\Codes-Minor\Github\DB-GPT\start-dbgpt.ps1:
# 屏蔽代理环境变量,豁免本地回环
Remove-Item Env:HTTP_PROXY, Env:HTTPS_PROXY, Env:ALL_PROXY, Env:http_proxy, Env:https_proxy -ErrorAction SilentlyContinue
$env:NO_PROXY = "127.0.0.1,localhost,192.168.31.xx"
Set-Location $PSScriptRoot
uv run --no-sync dbgpt start webserver --config configs/dbgpt-proxy-siliconflow.toml
以后直接
.\start-dbgpt.ps1即可。
方法4 修改源代码 (不建议)
改 DB-GPT 源码(packages/dbgpt-core/src/dbgpt/util/api_utils.py里httpx.AsyncClient()改成trust_env=False也能根治)。
参数解释(可跳过)
uv run参数
uv是 Rust 写的现代 Python 包/项目管理工具(同类:poetry、pipenv)。uv run <命令>的核心作用:
- 自动定位项目(向上找
pyproject.toml/uv.lock);- 找到(必要时创建)项目的虚拟环境
.venv;- 把命令放进项目虚拟环境里执行——保证用的是项目依赖的那套 python 和包,而不是系统 Python。
对笔者这条命令:uv run dbgpt ...实际运行的是F:\Codes-Minor\Github\DB-GPT\.venv里的 dbgpt 命令和依赖,与conda的(python-3.13)虚拟环境无关。
--no-sync参数
- 作用:跳过"运行前同步依赖"这一步。
uv run默认在执行命令前会先做一次 project sync:对照pyproject.toml文件 +uv.lock文件,检查
Python虚拟环境的依赖是否齐全、版本是否一致,缺了就现场安装/更新。
| 项 | 不加(默认) | 加 --no-sync |
|---|---|---|
| 启动前 | 检查并同步依赖(可能联网安装) | 直接用现有 .venv |
| 启动速度 | 慢;依赖变更或网络慢时可能卡数分钟无输出(你之前就踩过,约 3 分钟) | 快,秒起 |
| 依赖缺失时 | 自动补装 | 直接报 ImportError/命令找不到 |
| 适用 | 首次克隆、改过依赖、要保证环境一致 | 开发调试、依赖已就绪的日常启动 |
日常启动加
--no-sync省时间;改了pyproject.toml或换了新环境时去掉它做一次同步。
dbgpt start webserver命令参数
dbgpt:DB-GPT 项目的 CLI 入口命令,由 packages/dbgpt-core/pyproject.toml 的[project.scripts]注册(指向packages/dbgpt-app/src/dbgpt_app/_cli.py),所以装好依赖后任何位置都有dbgpt命令。

DB-GPT\packages\dbgpt-app\src\dbgpt_app_cli.py

DB-GPT\packages\dbgpt-app\src\dbgpt_app\dbgpt_server.py
start webserver:子命令组,启动 DB-GPT 的 Web 服务端,一条命令拉起整条链:
- 模型集群 worker:LLM(DeepSeek-V4-Flash)、embedding(Qwen3-Embedding-4B)、reranker(Qwen3-Reranker-4B),经代理调用 SiliconFlow API;
- controller:worker 注册中心(
127.0.0.1:5670的/api/controller/models,就是之前 502 的那条注册链路);- Web 服务:FastAPI/uvicorn 监听
0.0.0.0:5670(Web UI +/api/health+ 推理接口);- 周边:SQLite(observability / 知识库)、配置加载。
- 命令依据(源码路径,已查证):
- CLI 入口:
packages/dbgpt-app/src/dbgpt_app/_cli.py(start/stop命令组,stop webserver --port 5670也在其中);- 实际启动:
packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py的run_webserver → run_uvicorn;- 配置来源:
--config configs/dbgpt-proxy-siliconflow.toml([service.web]端口、[service.model.worker]、LLM 代理与 api_base 等)。
对照关系:
dbgpt start webserver启动整条服务链,dbgpt stop webserver --port 5670优雅停止;如需确认当前残留进程,可netstat -ano | findstr :5670查看。
- 项目根目录的
pyproject.toml(name =dbgpt-mono):
[tool.uv.workspace] # L31-40:声明成员目录
members = ["packages/dbgpt-app", ..., "packages/dbgpt-core", ...]
[tool.uv.sources] # L15-23:依赖源映射
dbgpt = { workspace = true } # 依赖中的 dbgpt 用本地成员包,不从 PyPI 装
packages/dbgpt-core/pyproject.toml(name =dbgpt):
[project.scripts] # L206-207
dbgpt = "dbgpt.cli.cli_scripts:main"

uv 的 workspace 机制把所有子包合并成同一个项目来解析和安装,scripts 是每个子包自己声明、由安装阶段消费的。完整流程如下:
- 识别 workspace:你执行
uv run时,uv 从当前目录向上找到根pyproject.toml,读取[tool.uv.workspace].members,把列出的 8 个子包目录认作同一工作区的成员; - 解析依赖图:uv 读取根包 + 全部成员包各自的
[project]依赖声明,合并成一个统一的依赖解析单元;[tool.uv.sources]中{ workspace = true }保证解析时 "dbgpt、dbgpt-app…" 指向本地源码而非 PyPI; - 生成 / 校验锁文件:解析结果写入
uv.lock(整个 workspace 一份),uv run默认按它做 sync(这正是--no-sync跳过的步骤); - 安装、并生成命令:所有成员包被装进同一个
.venv(本地路径方式)。安装dbgpt-core时,pip/uv 消费它的[project.scripts],在.venv\Scripts\生成dbgpt.exe—— 内容等价于import dbgpt.cli.cli_scripts; sys.exit(main()); - 命令命中:
uv run dbgpt ...把.venv\Scripts放进 PATH,dbgpt解析为.venv\Scripts\dbgpt.exe,执行dbgpt.cli.cli_scripts:main(); - 子命令分发:
main()解析start webserver→ 调用dbgpt-app包的启动逻辑(dbgpt_app/_cli.py、dbgpt_server.py的run_webserver → run_uvicorn)—— 而dbgpt-app也是同 workspace 成员、同 venv,所以 import 得到。
项目根目录的
pyproject.toml的作用是声明 "这是一个 workspace,成员有哪些、依赖源怎么映射";[project.scripts]则始终属于声明它的子包,由 uv 在安装该子包到.venv时自动生成可执行入口。根目录文件本身不 "读取"scripts—— 两者通过 "workspace 成员 → 统一安装 → 生成 console script" 这条链连接。
step6 访问 DB-GPT

2 主流程体验篇
Step1 配置模型
- 设置-模型管理-添加模型
LLM 模型、嵌入模式、重排序模型(具体的配置样例值,可参照 安装部署的模型配置章节。)

step2 添加数据源
添加 MYSQL 数据源为例:

- 这里我提供了3张表: 学生 --(选择)--> 课程
- 学生表

- 课程表
- 选课关系表

step3 创建数据分析任务,享用数据分析助手
- CASE 简单任务: 涉及到查询单张表

- CASE 进阶任务: 涉及到关联2张表、并多个过滤条件

- CASE 复杂任务: 涉及Plan多个子任务、并对子任务的结果聚合


3 功能模块篇
任务管理 & 探索广场
- 探索广场

- 新建任务 / 任务列表

技能/Skill


数据源
- 支持的数据库类型的数据源
Spark / Hive / HBase / Clickhouse / Apache Doris / StarRocks / MaxCompute / ...
DuckDB / SQLLite / Access / MSSQL / MySQL / PostgreSQL / Oracle / MongoDB / Redis / Cassandra
TuGraph / Neo4j
Vertica / OpenGuass / GaussDB / OceanBase
Space / Omc / Couchbase

- SQLLite 数据源(安装时内置的样例数据源)

知识库
-
创建知识库

-
配置参数

召回分数 = 设置相似向量检索的阈值分数
模型 = 用于创建文本或其他数据的矢量表示的模型
分片大小 = 处理中使用的数据块的大小
- 上传文件


设置
模型管理

应用程序
- 应用程序列表

创建应用

- 工作模式: 多智能体自动规划模式 / 任务流编排模式 / 单一智能体模式 / 原生应用模式
样例应用: Chat Data
- Chat Data
- tag: native_app / chat_with_db_execute
- description: Have a conversation with your private data through natural language


样例: Chat Dashboard
- URL
- 配置应用


样例应用: Chat DB
- 编辑应用

- 对话/使用

AWEL工作流
使用 AWEL Flow 编辑器以可视化方式构建 AI 工作流。它提供拖拽式界面,无需编写代码即可组合 LLM 流水线。
- URL

- 支持:模板、导入、保存 3种编辑操作

连接器管理(MCP + 外部系统)
- 支持提供MCP机制连接的外部系统: 自定义的 MCP Server / 飞书 / 语雀 / Github / 钉钉 / Notion / DeepWiki / Tavily / Linear / ...

定时任务

模型评测

可观测

Z FAQ for DB-GPT
Y 推荐文献
- [DataAgent] DB-GPT 使用指南 - 博客园/数据知音
- [DataAgent] [DataAgents] DB-GPT 源码剖析 - 博客园/数据知音
- [AI/嵌入式/向量存储] Chroma:AI 原生的轻量级向量检索基础设施 - 博客园/千千寰宇
- [AI/向量存储] 深度解析:Chroma 向量数据库如何基于 SQLite 实现向量存储 - 博客园/千千寰宇
- [嵌入式数据库/RDBMS] SQLite 3.x: 全球部署最广泛的零配置、单文件、嵌入式 ACID 关系型数据库引擎 - 博客园/千千寰宇
- DB-GPT
- SiliconFlow/硅基流动
-
当 DB-GPT 遇上 SiliconCloud:让开发者高效搭建自己的专属应用 - CSDN/蚂蚁数据智能技术 2024.12.21
-
手把手教你用 Docker Compose 部署 DBGPT:连接千问 3 模型与数据库 - 今日头条 2025.05.12


浙公网安备 33010602011771号