DB-GPT 源码部署全指南:从 git clone 到本地 Agent 数据助手上线
2026/9/14 22:18:15 网站建设 项目流程

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 * 32G24G本地启动最好配置 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-GPT

DB-GPT 采用 uv workspace 管理多包仓库,仓库根目录的 pyproject.toml 声明了dbgpt-appdbgpt-clientdbgpt-coredbgpt-extdbgpt-servedbgpt-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.6tiktoken>=0.8.0httpx[socks]storage_chromadb位于 packages/dbgpt-ext/pyproject.toml,依赖chromadb>=0.4.22onnxruntime

配置 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]]段指定nameprovider(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-chatdeepseek-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"

其中cuda121quant_bnb定义于 packages/dbgpt-accelerator/dbgpt-acc-auto/pyproject.toml,分别用于安装 CUDA 12.1 版 PyTorch 与 bitsandbytes 量化支持;hf定义于 packages/dbgpt-core/pyproject.toml,包含transformers>=4.46.0sentencepiecesentence-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-hfmodels/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。理解其内部流程有助于排查部署问题:

  1. 配置加载run_webserver(config_file)调用load_config(config_file)(dbgpt_server.py)。若未传--config,默认回退到configs/dbgpt-proxy-siliconflow.toml;相对路径会拼接仓库根目录。配置通过ConfigurationManager.from_file解析为SystemParametersApplicationConfig,并支持${env:...}环境变量占位。
  2. 组件初始化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),会自动将其注册为默认数据源。
  3. 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"

请将hostportuserdatabasepassword替换为你自己的 MySQL 配置。此外,assets/schema/upgrade 目录下按版本存放了增量升级 SQL(如v0_8_0v0_8_1v0_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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询