DB-GPT 源码部署全指南:从 git clone 到本地 Agent 数据助手上线
【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI + Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT
导读
本文基于 DB-GPT 官方源码部署文档整理并深化,完整覆盖从环境评估、源码拉取、依赖安装到 Webserver 启动、数据库选型与示例数据加载的整套流程,并针对 OpenAI 代理、DeepSeek 代理、GLM4 本地模型三种典型部署场景给出可直接复制的配置与命令。通过本文,你将掌握使用uv管理依赖、解读dbgpt-proxy-*.toml/dbgpt-local-*.toml配置、切换 SQLite/MySQL 应用数据库、以及分离启动 Web 前端的完整实战能力。
环境要求
部署 DB-GPT 前,首先根据运行模式评估硬件资源。官方给出的最低要求如下:
| 启动模式 | CPU * 内存 | GPU | 备注 |
|---|---|---|---|
| 代理模型(Proxy model) | 4C * 8G | 不需要 | 代理模型不依赖 GPU |
| 本地模型(Local model) | 8C * 32G | 24G | 本地启动最好配置 24G 及以上显存 |
其中"代理模型"指通过 API 调用云端大模型(如 OpenAI、DeepSeek),推理发生在服务商侧,因此本机无需 GPU;"本地模型"指使用 Hugging Face Hub 拉取的模型权重在本机完成推理,LLM 与 Embedding 模型都会占用显存,建议 24G 以上。需要说明的是,代理模式虽然不依赖 GPU,但 RAG 场景下的 Embedding 模型若使用provider = "hf"(本地推理)仍会消耗一定 CPU 与内存资源。
环境准备
下载源码
使用git clone拉取当前仓库源码:
git clone https://github.com/eosphoros-ai/DB-GPT.git cd DB-GPTDB-GPT 采用 uv workspace 管理多包仓库,仓库根目录的 pyproject.toml 声明了dbgpt-app、dbgpt-client、dbgpt-core、dbgpt-ext、dbgpt-serve、dbgpt-sandbox以及dbgpt-accelerator/dbgpt-acc*等 workspace 成员,Python 版本要求>= 3.10。
安装 uv
uv 是本项目官方推荐的依赖与虚拟环境管理器,安装方式有以下几种:
- 命令行安装(macOS / Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh- 通过 PyPI / pipx 安装
python -m pip install --upgrade pip python -m pip install --upgrade pipx python -m pipx ensurepath pipx install uv --global安装完成后,运行uv --version验证是否成功:
uv --version更多安装方式可参考 uv 官方安装文档,也可以选择适合你平台的二进制包。
部署 DB-GPT
DB-GPT 的依赖通过uv sync按需组合安装。根据所选模型场景,在仓库根目录执行对应的依赖安装命令后,再启动 Webserver。
场景一:OpenAI 代理模型
安装依赖:代理模型只需基础组件 + OpenAI 兼容客户端 + RAG 与向量存储:
# Use uv to install dependencies needed for OpenAI proxy uv sync --all-packages \ --extra "base" \ --extra "proxy_openai" \ --extra "rag" \ --extra "storage_chromadb" \ --extra "dbgpts"其中proxy_openai位于 packages/dbgpt-core/pyproject.toml,实际依赖openai>=1.59.6、tiktoken>=0.8.0与httpx[socks];storage_chromadb位于 packages/dbgpt-ext/pyproject.toml,依赖chromadb>=0.4.22与onnxruntime。
配置 API Key:启动前必须在 configs/dbgpt-proxy-openai.toml 中提供 OpenAI API Key,或通过环境变量OPENAI_API_KEY注入:
# Model Configurations [models] [[models.llms]] ... api_key = "your-openai-api-key" [[models.embeddings]] ... api_key = "your-openai-api-key"实际配置文件中[[models.llms]]与[[models.embeddings]]均支持环境变量占位,例如 LLM 默认为gpt-4o(${env:LLM_MODEL_NAME:-gpt-4o}),Provider 为proxy/openai,API 地址默认https://api.openai.com/v1,Embedding 默认为text-embedding-3-small,均可通过环境变量覆盖。
启动 Webserver:
uv run dbgpt start webserver --config configs/dbgpt-proxy-openai.toml--config指定配置文件,configs/dbgpt-proxy-openai.toml是 OpenAI 代理模型配置,你也可以按需使用其他配置文件或自行创建。
可选启动方式:直接执行 Python 入口脚本:
uv run python packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py --config configs/dbgpt-proxy-openai.toml场景二:DeepSeek 代理模型
安装依赖:DeepSeek 通过 OpenAI 兼容接口调用,依赖与 OpenAI 代理场景一致:
uv sync --all-packages \ --extra "base" \ --extra "proxy_openai" \ --extra "rag" \ --extra "storage_chromadb" \ --extra "dbgpts"配置 API Key 与 Embedding 模型:将 DeepSeek API Key 填入 configs/dbgpt-proxy-deepseek.toml。该文件默认 Embedding 模型为BAAI/bge-large-zh-v1.5,如需更换,可在[[models.embeddings]]段指定name与provider(Provider 可为hf,即从 Hugging Face 拉取模型在本机推理):
# Model Configurations [models] [[models.llms]] # name = "deepseek-chat" name = "deepseek-reasoner" provider = "proxy/deepseek" api_key = "your-deepseek-api-key" [[models.embeddings]] name = "BAAI/bge-large-zh-v1.5" provider = "hf" # If not provided, the model will be downloaded from the Hugging Face model hub # uncomment the following line to specify the model path in the local file system # path = "the-model-path-in-the-local-file-system" path = "/data/models/bge-large-zh-v1.5"[[models.llms]]中可切换deepseek-chat与deepseek-reasoner等模型;若本地已缓存模型权重,通过path指向本地路径可避免重复下载。
启动 Webserver:
uv run dbgpt start webserver --config configs/dbgpt-proxy-deepseek.toml同样支持 Python 入口方式:
uv run python packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py --config configs/dbgpt-proxy-deepseek.toml场景三:GLM4 本地模型
安装依赖:本地模型需要 CUDA 运行时、Hugging Face Transformers、量化与 RAG 组件:
# Use uv to install dependencies needed for GLM4 # Install core dependencies and select desired extensions uv sync --all-packages \ --extra "base" \ --extra "cuda121" \ --extra "hf" \ --extra "rag" \ --extra "storage_chromadb" \ --extra "quant_bnb" \ --extra "dbgpts"其中cuda121、quant_bnb定义于 packages/dbgpt-accelerator/dbgpt-acc-auto/pyproject.toml,分别用于安装 CUDA 12.1 版 PyTorch 与 bitsandbytes 量化支持;hf定义于 packages/dbgpt-core/pyproject.toml,包含transformers>=4.46.0、sentencepiece、sentence-transformers。
配置模型路径:修改 configs/dbgpt-local-glm.toml 指定模型名称与路径:
# Model Configurations [models] [[models.llms]] name = "THUDM/glm-4-9b-chat-hf" provider = "hf" # If not provided, the model will be downloaded from the Hugging Face model hub # uncomment the following line to specify the model path in the local file system # path = "the-model-path-in-the-local-file-system" [[models.embeddings]] name = "BAAI/bge-large-zh-v1.5" provider = "hf" # If not provided, the model will be downloaded from the Hugging Face model hub # uncomment the following line to specify the model path in the local file system # path = "the-model-path-in-the-local-file-system"配置中[[models.llms]]指定 LLM 模型,[[models.embeddings]]指定 Embedding 模型。若未提供path参数,模型将按name从 Hugging Face Model Hub 自动下载;仓库默认配置(configs/dbgpt-local-glm.toml)中则指向本地models/THUDM/glm-4-9b-chat-hf与models/BAAI/bge-large-zh-v1.5路径,按需调整。
启动 Webserver:
uv run dbgpt start webserver --config configs/dbgpt-local-glm.toml启动流程的源码原理
无论使用哪种启动方式,最终都会进入 Webserver 入口 packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py。理解其内部流程有助于排查部署问题:
- 配置加载:
run_webserver(config_file)调用load_config(config_file)(dbgpt_server.py)。若未传--config,默认回退到configs/dbgpt-proxy-siliconflow.toml;相对路径会拼接仓库根目录。配置通过ConfigurationManager.from_file解析为SystemParameters与ApplicationConfig,并支持${env:...}环境变量占位。 - 组件初始化:
initialize_app完成日志初始化、server_init、路由挂载(/api下的 Chat、GptsApp、Knowledge 等)、模型 Worker 管理、数据库迁移(_migration_db_storage)以及默认数据源注册——若检测到Walmart_Sales示例数据库文件(位于 pilot/examples/Walmart_Sales.db 或 docker/examples/dashboard/Walmart_Sales.db),会自动将其注册为默认数据源。 - Web 服务:
run_uvicorn使用 Uvicorn 启动 HTTP 服务,绑定service.web段配置的host(默认0.0.0.0)与port(默认5670),并加载静态前端资源。
访问网站
Webserver 启动成功后,打开浏览器访问http://localhost:5670即可进入 DB-GPT Web 界面。
(可选)独立运行 Web 前端
DB-GPT 的 Web 前端源码位于 web 目录(Next.js 项目)。如需前后端分离开发调试,可单独启动前端:
cd web && npm install cp .env.template .env # Set API_BASE_URL to your DB-GPT server address, usually http://localhost:5670 npm run dev随后浏览器访问http://localhost:3000。前端通过API_BASE_URL指向 DB-GPT Webserver 地址(通常为http://localhost:5670)完成 API 代理转发。若仅在开发调试场景使用分离部署,日常使用推荐直接访问5670端口的整合模式。
安装 DB-GPT 应用数据库
DB-GPT 应用自身的元数据(用户、会话、应用、插件等)存储于[service.web.database]配置段指定的数据库,支持 SQLite 与 MySQL 两种选择。
使用 SQLite(默认)
SQLite 为默认配置,无需手动建表,相关数据表会在首次启动时自动创建。在 toml 配置文件中确认:
[service.web.database] type = "sqlite" path = "pilot/meta_data/dbgpt.db"仓库中三个示例配置文件均默认采用此配置,数据库文件生成于 pilot/meta_data/dbgpt.db。
使用 MySQL
⚠️ 注意:自 v0.4.7 起,出于安全考虑,DB-GPT 不再自动生成 MySQL 数据库 Schema,需要手动执行建库建表脚本。
第一步:执行 MySQL 脚本创建数据库与表(脚本位于 assets/schema/dbgpt.sql):
mysql -h127.0.0.1 -uroot -p{your_password} < ./assets/schema/dbgpt.sql第二步:修改 toml 配置文件,将数据库切换为 MySQL:
[service.web.database] type = "mysql" host = "127.0.0.1" port = 3306 user = "root" database = "dbgpt" password = "aa123456"请将host、port、user、database、password替换为你自己的 MySQL 配置。此外,assets/schema/upgrade 目录下按版本存放了增量升级 SQL(如v0_8_0、v0_8_1、v0_8_2等),升级旧版本部署时可按需执行对应版本脚本。
加载内置测试数据(可选)
DB-GPT 内置了一批测试数据与示例 SQL,可加载到本地数据库用于快速体验与验证。
- Linux / macOS
bash ./scripts/examples/load_examples.sh- Windows
.\scripts\examples\load_examples.bat从脚本实现(load_examples.sh 与 load_examples.bat)可以看出其行为:依赖系统sqlite3命令,默认将 docker/examples/sqls 下所有*_sqlite.sql导入pilot/data/default_sqlite.db、所有*_sqlite_wide.sql导入pilot/data/wide_sqlite.db(SQLite 宽表场景示例,如订单宽表)。脚本也支持自定义参数:
./scripts/examples/load_examples.sh --db-file <sqlite_db_path> --sql-file <sql_file_to_run>-d / --db-file:指定目标 SQLite 数据库文件路径-f / --sql-file:指定要执行的单个 SQL 文件
加载完成后重新打开浏览器访问http://localhost:5670,即可在对话中体验示例数据库的分析能力。
常见问题与排障建议
uv sync报错或依赖冲突:确认已位于仓库根目录(存在 pyproject.toml),并保持 uv 为最新版本;本地模型场景务必确认已安装匹配的 CUDA 驱动(cuda121extra 面向 CUDA 12.1)。- 启动报
Configuration file not found:--config相对路径基于仓库根目录解析(见 dbgpt_server.py),请检查路径拼写或改用绝对路径。 - 代理模型 401/超时:检查
api_key是否正确配置,以及api_base是否指向可访问的接口地址(支持api_base/api_url自定义)。 - 本地模型显存不足:请确认 GPU 满足 24G 及以上要求,或考虑降低量化精度(
quant_bnbextra 提供 bitsandbytes 量化支持)。 - MySQL 启动异常:确认已先执行 assets/schema/dbgpt.sql 完成建表,且账号具备相应权限。
至此,你已经完成了 DB-GPT 从源码到可运行实例的完整部署。无论是通过云端 API 的代理模式快速体验,还是基于本地模型的数据私密化部署,都可以按本文三种场景的组合灵活落地。
【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI + Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考