DB-GPT 0.7.0 部署教程
编辑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 依赖安装
请根据你的使用情景从以下
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"
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"
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"
全量依赖(比如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为例)
、hf
、llama.cpp.server
、vllm
proxy/openai
:name
: 填入你是用的api的模型名称 如gpt-4o
api_base
: API地址 如https://api.openai.com/v1
api_key
: API-KEY 如sk-xxx
一份 llms 和 embeddings 都用
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下载对应模型 (这就是为什么建议填写上方形式) 如果填写的话 填入 模型的文件路径即可一份 llms 和 embeddings 都用
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
: 模型路径一份 llms 用
hf
的配置:# 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/ 即可。
- 5
- 10
-
分享