DB-GPT配置详解:Toml配置文件各项参数说明
概述
DB-GPT是一个开源的数据库领域大模型框架,采用TOML(Tom's Obvious, Minimal Language)格式进行配置管理。TOML格式以其简洁、易读的特点,成为现代应用配置的首选格式。本文将深入解析DB-GPT的配置文件结构和各项参数含义,帮助开发者更好地理解和配置DB-GPT系统。
配置文件结构总览
DB-GPT的配置文件采用分层结构,主要包含以下几个核心模块:
核心配置模块详解
1. 系统配置(System)
系统配置是DB-GPT的基础配置,定义了全局参数和环境设置。
[system]
# 语言设置,支持环境变量注入
language = "${env:DBGPT_LANG:-zh}"
# 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL
log_level = "INFO"
# API密钥列表
api_keys = []
# 加密密钥,用于数据加密
encrypt_key = "your_secret_key"
参数说明表:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| language | string | zh | 系统语言,支持环境变量注入 |
| log_level | string | INFO | 日志级别,控制日志输出详细程度 |
| api_keys | array | [] | API密钥列表,用于外部服务认证 |
| encrypt_key | string | your_secret_key | 数据加密密钥,必须修改为安全值 |
2. 服务配置(Service)
服务配置定义了Web服务器的网络和数据库设置。
[service.web]
# 服务器监听地址
host = "0.0.0.0"
# 服务器监听端口
port = 5670
[service.web.database]
# 数据库类型:sqlite, mysql, postgresql
type = "sqlite"
# 数据库文件路径
path = "pilot/meta_data/dbgpt.db"
服务配置参数表:
| 配置项 | 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| web | host | string | 0.0.0.0 | 服务器监听地址 |
| web | port | integer | 5670 | 服务器监听端口 |
| database | type | string | sqlite | 数据库类型 |
| database | path | string | pilot/meta_data/dbgpt.db | 数据库路径 |
3. 应用配置(App)
应用配置定义了不同聊天场景的行为参数。
[app]
# 全局温度参数,控制生成随机性
temperature = 0.6
[[app.configs]]
name = "chat_excel"
# Excel聊天专用温度
temperature = 0.1
# DuckDB扩展目录
duckdb_extensions_dir = []
# 是否强制安装扩展
force_install = true
[[app.configs]]
name = "chat_normal"
# 内存类型和限制
memory = {type="token", max_token_limit=20000}
[[app.configs]]
name = "chat_with_db_qa"
# 模式检索top k数量
schema_retrieve_top_k = 50
# 内存配置
memory = {type="token", max_token_limit=20000}
应用配置参数表:
| 应用类型 | 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| 全局 | temperature | float | 0.6 | 生成温度,0-1之间 |
| chat_excel | temperature | float | 0.1 | Excel处理专用温度 |
| chat_excel | duckdb_extensions_dir | array | [] | DuckDB扩展目录 |
| chat_excel | force_install | boolean | true | 强制安装扩展 |
| chat_normal | memory.type | string | token | 内存类型 |
| chat_normal | memory.max_token_limit | integer | 20000 | 最大token限制 |
| chat_with_db_qa | schema_retrieve_top_k | integer | 50 | 模式检索数量 |
4. 模型配置(Models)
模型配置是DB-GPT的核心,支持多种大语言模型和嵌入模型。
4.1 大语言模型配置
[[models.llms]]
# 模型名称
name = "${env:LLM_MODEL_NAME:-gpt-4o}"
# 模型提供商:proxy/openai, llama.cpp, hf等
provider = "${env:LLM_MODEL_PROVIDER:-proxy/openai}"
# API基础地址
api_base = "${env:OPENAI_API_BASE:-https://api.openai.com/v1}"
# API密钥
api_key = "${env:OPENAI_API_KEY}"
4.2 嵌入模型配置
[[models.embeddings]]
# 嵌入模型名称
name = "${env:EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
# 嵌入模型提供商
provider = "${env:EMBEDDING_MODEL_PROVIDER:-proxy/openai}"
# API URL地址
api_url = "${env:EMBEDDING_MODEL_API_URL:-https://api.openai.com/v1/embeddings}"
# API密钥
api_key = "${env:OPENAI_API_KEY}"
模型配置支持类型表:
| 模型类型 | 提供商 | 配置示例 | 说明 |
|---|---|---|---|
| LLM | proxy/openai | api_base, api_key | OpenAI代理 |
| LLM | llama.cpp | path, n_ctx, n_gpu_layers | 本地Llama.cpp模型 |
| LLM | hf | path, device_map | HuggingFace模型 |
| Embedding | proxy/openai | api_url, api_key | OpenAI嵌入 |
| Embedding | hf | path, device | HuggingFace嵌入 |
5. RAG配置(Retrieval Augmented Generation)
RAG配置定义了检索增强生成的相关参数。
[rag.storage]
[rag.storage.vector]
# 向量存储类型:chroma, milvus, pgvector等
type = "chroma"
# 持久化路径
persist_path = "pilot/data"
RAG存储配置表:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | string | chroma | 向量存储类型 |
| persist_path | string | pilot/data | 数据持久化路径 |
配置类型架构详解
DB-GPT的配置系统采用模块化设计,包含丰富的配置类型:
环境变量注入机制
DB-GPT支持环境变量注入,提高配置的灵活性:
# 环境变量注入语法
key = "${env:VARIABLE_NAME:-default_value}"
环境变量使用示例:
| 环境变量 | 配置项 | 说明 |
|---|---|---|
| DBGPT_LANG | system.language | 系统语言 |
| LLM_MODEL_NAME | models.llms.name | LLM模型名称 |
| LLM_MODEL_PROVIDER | models.llms.provider | LLM模型提供商 |
| OPENAI_API_KEY | models.llms.api_key | OpenAI API密钥 |
最佳实践配置示例
1. 生产环境配置
[system]
language = "zh"
log_level = "INFO"
api_keys = ["sk-prod-key-123456"]
encrypt_key = "secure_encryption_key_2024"
[service.web]
host = "0.0.0.0"
port = 5670
[service.web.database]
type = "mysql"
path = "mysql://user:password@localhost:3306/dbgpt"
[models]
[[models.llms]]
name = "gpt-4-turbo"
provider = "proxy/openai"
api_base = "https://api.openai.com/v1"
api_key = "${env:OPENAI_API_KEY}"
[[models.embeddings]]
name = "text-embedding-3-large"
provider = "proxy/openai"
api_url = "https://api.openai.com/v1/embeddings"
api_key = "${env:OPENAI_API_KEY}"
2. 本地开发配置
[system]
language = "zh"
log_level = "DEBUG"
api_keys = []
encrypt_key = "dev_encryption_key"
[service.web]
host = "127.0.0.1"
port = 5670
[service.web.database]
type = "sqlite"
path = "pilot/meta_data/dbgpt_dev.db"
[models]
[[models.llms]]
name = "DeepSeek-R1-Distill-Qwen-1.5B"
provider = "llama.cpp"
path = "models/DeepSeek-R1-Distill-Qwen-1.5B-Q4_K_M.gguf"
[[models.embeddings]]
name = "BAAI/bge-large-zh-v1.5"
provider = "hf"
path = "models/BAAI/bge-large-zh-v1.5"
常见问题排查
1. 配置验证
使用以下命令验证配置文件语法:
# 检查TOML语法
python -c "import tomllib; tomllib.load(open('config.toml', 'rb'))"
2. 环境变量检查
确保所需环境变量已正确设置:
# 检查环境变量
echo $OPENAI_API_KEY
echo $DBGPT_LANG
3. 权限验证
检查数据库文件和存储目录的权限:
# 检查文件权限
ls -la pilot/meta_data/
ls -la pilot/data/
总结
DB-GPT的TOML配置文件提供了灵活而强大的配置能力,通过模块化的设计支持多种使用场景。掌握配置文件各项参数的含义和使用方法,能够帮助开发者更好地定制和优化DB-GPT系统。建议在生产环境中使用环境变量注入敏感信息,并定期审查和更新配置参数以确保系统安全。
通过本文的详细解析,相信您已经对DB-GPT的配置系统有了全面的了解,能够根据实际需求进行精准配置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



