yyhhyy's blog

yyhhyy

DB-GPT 0.7.0 部署教程

2599
2025-02-26

1. 前置环境

因为DB-GPT 越来越强大了,只用pip来管理依赖包的话不太优雅,因此使用 uv 来管理。我最近写的项目也再慢慢转 uv 了,也推荐大家慢慢转过来。

本教程讲解以 代理模型 为例, 也就是 openai-proxy

1.1 uv 安装

  • macOS and Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh
  • windows(请在powershell执行):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

验证是否成功安装uv:

uv -V

后续如果uv升级可以执行以下命令升级:

uv self update

1.2 环境安装

1.2.1 项目拉取

首先先拉取项目,并进入项目目录

git clone https://github.com/eosphoros-ai/DB-GPT.git
cd DB-GPT

1.2.2 依赖安装

请根据你的使用情景从以下

  1. OpenAI Proxy(只用到代理模型,没有涉及到本地模型):

  • macOS and Linux:

uv sync --all-packages --frozen \
--extra "base" \
--extra "proxy_openai" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts"
  • windows:

uv sync --all-packages --frozen --extra "base" --extra "proxy_openai" --extra "rag" --extra "storage_chromadb" --extra "dbgpts"

  1. Local(本地模型):

  • macOS and Linux:

uv sync --all-packages --frozen \
--extra "base" \
--extra "hf" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "quant_bnb" \
--extra "dbgpts"
  • windows:

uv sync --all-packages --frozen --extra "base" --extra "hf" --extra "rag" --extra "storage_chromadb" --extra "quant_bnb" --extra "dbgpts" 

  1. LLAMA-CPP

  • macOS and Linux:

uv sync --all-packages --frozen \
--extra "base" \
--extra "llama_cpp" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "quant_bnb" \
--extra "dbgpts"
  • windows:

uv sync --all-packages --frozen --extra "base" --extra "llama_cpp" --extra "rag" --extra "storage_chromadb" --extra "quant_bnb" --extra "dbgpts"

  1. 全量依赖(比如LLMs使用的本地模型,embedding使用的OpenAI Proxy等)

拼接所有依赖项即可

  • macOS and Linux:

uv sync --all-packages --frozen \
--extra "base" \
--extra "proxy_openai" \
--extra "hf" \
--extra "llama_cpp" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts" \
--extra "quant_bnb" \
  • windows:

uv sync --all-packages --frozen --extra "base" --extra "proxy_openai" --extra "hf" --extra "llama_cpp" --extra "rag" --extra "storage_chromadb" --extra "dbgpts" --extra "quant_bnb" 

耐心等待环境安装结束即可。

2. 配置文件

2.1 语法说明

api_key为例:

# 读环境变量或者默认值:
api_key = "${env:OPENAI_API_KEY:-sk-xxx}"
# 直接配置key
api_key = "sk-xxx"
# 只读取环境变量(如果没有环境变量会报错):
api_key = "${env:OPENAI_API_KEY}"

配置文件在 configs/

2.2 System

[system]
# 语言 -zh 或者 -en 等切换即可
language = "${env:DBGPT_LANG:-zh}" # 也可以直接写 language = "zh"
# 日志等级,建议默认
log_level = "INFO"
# 使用api请求DB-GPT时附带的api密钥(可以配置多个)
api_keys = []
# 加密数据
encrypt_key = "your_secret_key"

2.3 Server

# host、端口
[service.web]
# 如果要实现局域网内设备都可访问 请使用 0.0.0.0
# 如果仅是本机设备可访问 请使用 127.0.0.1
host = "0.0.0.0"
# 端口请根据实际情况来 默认即可
port = 5670
​
# DB-GPT METADATA DATABASE设置
[service.web.database]
# SQLite (默认)
type = "sqlite"
path = "pilot/meta_data/dbgpt.db"
# TODO: MYSQL

2.4 RAG

# 向量数据库
​
[rag]
# 基础配置
chunk_size=1000
chunk_overlap=0
similarity_top_k=5
similarity_score_threshold=0.0
max_chunks_once_load=10
max_threads=1
rerank_top_k=3
​
[rag.storage]
[rag.storage.vector]
# Chroma (默认)
type = "Chroma"
persist_path = "pilot/data"
# TODO: Milvus 、 Weaviate 、 ElasticSearch
​
# TuGraph
[rag.storage.graph]
type = "TuGraph"
host="127.0.0.1"
port=7687
username="admin"
password="73@TuGraph"
#enable_summary="True"
#enable_similarity_search="True"

2.5 Models

2.5.1 参数解析

provider划分: 可填写: proxy/openai(具体是openai还是其他接口的模型请根据实际情况而定,这里以openai为例)hfllama.cpp.servervllm

  • proxy/openai

    name: 填入你是用的api的模型名称 如gpt-4o

    api_base: API地址 如 https://api.openai.com/v1

    api_key: API-KEY 如sk-xxx

    一份 llmsembeddings 都用 proxy/openai的配置:

    # Model Configurations
    [models]
    [[models.llms]]
    name = "${env:LLM_MODEL_NAME:-gpt-4o}"
    provider = "${env:LLM_MODEL_PROVIDER:-proxy/openai}"
    api_base = "${env:OPENAI_API_BASE:-https://api.openai.com/v1}"
    api_key = "${env:OPENAI_API_KEY:-sk-xxx}"
    ​
    [[models.embeddings]]
    name = "${env:EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
    provider = "${env:EMBEDDING_MODEL_PROVIDER:-proxy/openai}"
    api_url = "${env:EMBEDDING_MODEL_API_URL:-https://api.openai.com/v1/embeddings}"
    api_key = "${env:OPENAI_API_KEY:-sk-xxx}"
  • hf

    name: 模型名称(建议填写如: name = "THUDM/glm-4-9b-chat-hf")

    path: 非必填 如果没有填写path 那么会根据 name 到 Hugging Face下载对应模型 (这就是为什么建议填写上方形式) 如果填写的话 填入 模型的文件路径即可

    一份 llmsembeddings 都用 hf的配置:

    # 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"
  • llama.cpp.server

    name: 模型名称

    path: 模型路径

    一份 llmshf的配置:

    # Model Configurations
    [models]
    [[models.llms]]
    name = "Qwen2.5-Coder-0.5B-Instruct"
    provider = "llama.cpp.server"
    path = "/data/models/qwen2.5-coder-0.5b-instruct-q4_k_m.gguf"

一份LLMs使用proxy/openai Embeddings使用hf的配置:

# Model Configurations
[models]
[[models.llms]]
name = "gpt-4o"
provider = "proxy/openai"
api_base = "${env:OPENAI_API_BASE:-https://api.openai.com/v1}"
api_key = "${env:OPENAI_API_KEY:-sk-xxx}"
​
[[models.embeddings]]
name = "BAAI/bge-large-zh-v1.5"
provider = "hf"
path = "the-model-path-in-the-local-file-system"

如果需要使用其他组合 请自行修改配置文件!

贴一份完整的配置(其他组合请自己拼接 逻辑同上):

[system]
# Load language from environment variable(It is set by the hook)
language = "${env:DBGPT_LANG:-zh}"
api_keys = []
encrypt_key = "your_secret_key"
​
# Server Configurations
[service.web]
host = "0.0.0.0"
port = 5670
​
[service.web.database]
type = "sqlite"
path = "pilot/meta_data/dbgpt.db"
​
[rag.storage]
[rag.storage.vector]
type = "Chroma"
persist_path = "pilot/data"
​
# Model Configurations
[models]
[[models.llms]]
name = "gpt-4o"
provider = "proxy/openai"
api_base = "${env:OPENAI_API_BASE:-https://api.openai.com/v1}"
api_key = "${env:OPENAI_API_KEY:-sk-xxx}"
​
[[models.embeddings]]
name = "BAAI/bge-large-zh-v1.5"
provider = "hf"
path = "/data/models/bge-large-zh-v1.5"
​

3. 启动项目

两种方式可以启动

  • 方式一:

uv run dbgpt start webserver --config configs/dbgpt-proxy-openai.toml
  • 方式二:

uv run python packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py --config configs/dbgpt-proxy-openai.toml

接下来访问 http://localhost:5670/ 即可。