DB-GPT的升级换代

    一个单纯的项目工作记录

之前一直用DB-GPT来做项目的RAG,但最近重启后发现BYD怎么都用不了,一看居然大更新。
在最新的7.0的版本中,他们不再使用pip来进行包的管理,而是使用uv
这个uv挺有意思,就先介绍一下:

uv 的核心特点和作用:

  1. 速度极快:相比 pipuv 采用 Rust 语言编写核心逻辑,依赖解析和安装速度提升 10-100 倍(官方数据),尤其在大型项目(如 DB-GPT 这类依赖复杂的项目)中优势明显。

  2. 功能全面:集成了包管理(安装、卸载、升级)、虚拟环境管理、依赖锁文件生成(类似 pip freeze 但更严谨)、工作区(workspace)支持等功能,一站式解决 Python 项目的依赖问题。

  3. 严格的依赖管理:自动生成 uv.lock 锁文件,精确记录所有依赖的版本和来源,确保不同环境下安装的依赖完全一致(避免 pip 中常见的 “本地能跑,线上报错” 问题)。

  4. 支持工作区(workspace):对于多包项目(如 DB-GPT 可能包含多个子模块 / 插件),uv 支持通过 pyproject.toml 中的 tool.uv.workspace 配置管理整个项目的依赖,统一安装 / 更新所有子包的依赖,这也是 DB-GPT 中重点使用的功能(代码中 extract_workspace_extras 函数就是基于此解析项目结构)。

在 DB-GPT 中的具体应用:

  • 代码中频繁出现的 uv sync 命令:用于根据 pyproject.tomluv.lock 同步依赖(安装缺失的依赖,移除不需要的依赖),类似 pip install -r requirements.txt 但更智能。
  • --extra 参数:uv 支持通过 --extra 指定安装 “可选依赖”(即 pyproject.toml 中的 optional-dependencies),DB-GPT 中各种功能模块(如 RAG、代理模型、存储引擎)的依赖就是通过这种方式管理的。
  • 工作区配置:通过 tool.uv.workspace 定义项目的子模块(members)和排除项(exclude),uv 会自动识别并管理整个项目的依赖关系,无需手动维护多个 requirements.txt

而这样就导致了我们的启动方式的改变:
在原本的使用中,我们直接python dbgpt/server/run.py,就开始启动服务
但在现在中,他提供了以下两个方法:1.uv run dbgpt start webserver --config configs/dbgpt-proxy-openai.toml
2.uv run python packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py --config configs/dbgpt-proxy-openai.toml

注意:uv的下载出问题的情况下,可以通过pip下载:python -m pip install --upgrade pip
python -m pip install --upgrade pipx
python -m pipx ensurepath
pipx install uv --global

纯cpu有概率跑不起来,看到说装上cpu版本的pytorch能解决

目前7.0快速开启文档如下: 快速开始_V0.7.0