尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

DB-GPT 单机部署实战指南:从源码安装、模型配置到服务验证

DB-GPT 单机部署实战指南:从源码安装、模型配置到服务验证 DB-GPT 单机部署实战指南从源码安装、模型配置到服务验证【免费下载链接】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 的单机Stand-alone部署流程从克隆源码、创建 Python 虚拟环境、安装依赖到选择本地模型或代理 API 模型、配置环境变量最后通过一条命令启动内置的 WebServer、Model Controller 与 Model Worker并使用dbgpt model list与dbgpt model chat验证模型服务是否真正可用。读完本文你将掌握在单台机器上把 DB-GPT 从零部署到可对话验证的完整能力并能理解 CLI 启动背后各服务进程与模型注册中心的工作原理。部署前准备克隆仓库源码单机部署的第一步是获取 DB-GPT 的源码。DB-GPT 采用多包monorepo结构核心代码按功能拆分在packages/目录下例如dbgpt-core核心框架与模型集群、dbgpt-appWebServer 与 Web 前端、dbgpt-serve各业务服务、dbgpt-clientSDK 客户端等因此推荐以源码方式editable 安装部署便于调试与二次开发。# 下载源码 git clone https://gitcode.com/GitHub_Trending/db/DB-GPT.git cd DB-GPT进入仓库根目录后可以看到顶层包含packages/各 Python 包、pilot/入口与元数据含pilot/meta_data/alembic数据库迁移脚本、configs/各类模型服务配置模板如dbgpt-local-glm.toml、dbgpt-proxy-openai.toml、scripts/安装与运维脚本以及docs/完整文档等目录。创建并激活 Python 虚拟环境DB-GPT 依赖较复杂强烈建议使用独立虚拟环境避免污染系统 Python。官方推荐使用 Conda 创建 Python 3.10 环境# 创建虚拟环境 conda create -n dbgpt_env python3.10 # 激活虚拟环境 conda activate dbgpt_env安装项目依赖在仓库根目录执行 editable 安装并带上default特性extra它会一并安装运行 WebServer 与模型服务所需的默认依赖集合pip install -e .[default]安装完成后会生成dbgpt命令行入口。该入口在 packages/dbgpt-core/src/dbgpt/cli/cli_scripts.py 中定义由 Click 命令组cli挂载了start、stop、db、app、model、setup、profile等子命令。可以用dbgpt --help快速确认安装是否成功。模型准备本地模型与代理模型的选择DB-GPT 的模型服务同时支持本地开源模型与云端代理 API 模型两种形态。选择依据非常简单没有 GPU 资源推荐使用代理模型如 OpenAI、Qwen、文心一言 ERNIE Bot 等模型推理发生在云端 API 侧有 GPU 资源可以使用本地模型完成完全本地化部署。无 GPU仅下载 Embedding 模型即使使用代理 LLM知识库问答、向量检索等功能仍然需要一个 Embedding 模型文本向量化模型因此仍需本地下载一个 Embedding 模型例如text2vec-large-chinesemkdir models cd models # 下载 embedding 模型例如 text2vec-large-chinese git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese有 GPU下载 LLM 与 Embedding 模型有 GPU 资源时同时下载 LLM 与 Embedding 模型。仓库的模型注册表默认以glm-4-9b-chat作为示例 LLMmkdir models cd models # 下载 LLM 模型例如 glm-4-9b-chat git clone https://huggingface.co/THUDM/glm-4-9b-chat # 下载 embedding 模型例如 text2vec-large-chinese git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese popd需要注意模型目录约定默认的模型存放路径为仓库根目录下的models/。该约定定义在 packages/dbgpt-core/src/dbgpt/configs/model_config.pyMODEL_PATH os.path.join(ROOT_PATH, models)。同文件中的LLM_MODEL_CONFIG字典model_config.py维护了模型名 → 本地路径的映射其中glm-4-9b-chat对应models/glm-4-9b-chatproxyllm对应chatgpt_proxyllm后端该字典中还内置了vicuna、chatglm、qwen、llama、baichuan以及tongyi_proxyllm、zhipu_proxyllm、gemini_proxyllm、moonshot_proxyllm、deepseek_proxyllm、siliconflow_proxyllm等大量已支持的模型名。如果模型放在其他位置可通过环境变量LLM_MODEL_PATH覆盖路径见下文配置解析。配置模型环境变量与 .env 文件DB-GPT 通过环境变量也可写入项目根目录的.env文件由启动脚本加载指定使用哪种模型、连接哪个模型服务。核心配置的解析逻辑集中在 packages/dbgpt-core/src/dbgpt/_private/config.pyself.LLM_MODEL os.getenv(LLM_MODEL, glm-4-9b-chat) self.LLM_MODEL_PATH os.getenv(LLM_MODEL_PATH) # Proxy llm backend此配置仅在 LLM_MODELproxyllm 时生效 self.PROXYLLM_BACKEND None if self.LLM_MODEL proxyllm: self.PROXYLLM_BACKEND os.getenv(PROXYLLM_BACKEND)从源码可以看到两个关键事实LLM_MODEL未设置时默认值为glm-4-9b-chat本地模型路径为models/glm-4-9b-chat当LLM_MODELproxyllm时进入代理模型分支此时必须配置代理 API 的密钥与服务地址。代理模型配置使用代理模型时在.env中设置如下三项# 设置 LLM_MODEL 类型 LLM_MODELproxyllm # 设置你的 Proxy Api key 和 Proxy Server url PROXY_API_KEY{your-openai-sk} PROXY_SERVER_URLhttps://api.openai.com/v1/chat/completions其中PROXY_API_KEY与PROXY_SERVER_URL在 config.py 与 config.py 中被读取os.getenv(PROXY_API_KEY)、os.getenv(PROXY_SERVER_URL)。此外PROXYLLM_BACKEND值得特别注意当使用 fastchat 等部署框架暴露的 REST API 作为代理 LLM 时PROXYLLM_BACKEND用于指明这些框架实际部署的模型名DB-GPT 借此加载对应场景的 Prompt 模板。各厂商代理 API 密钥环境变量从 config.py 可以看到除了通用的PROXY_API_KEYDB-GPT 为多家模型厂商内置了独立的 API 密钥环境变量设置后会自动完成映射环境变量对应模型服务默认后端模型PROXY_API_KEYPROXY_SERVER_URL通用 OpenAI 兼容代理—TONGYI_PROXY_API_KEY阿里通义千问—ZHIPU_PROXY_API_KEY智谱 AIZHIPU_MODEL_VERSIONWEN_XIN_API_KEYWEN_XIN_API_SECRET百度文心一言WEN_XIN_MODEL_VERSIONGEMINI_PROXY_API_KEYGoogle Geminigemini-proMOONSHOT_API_KEYMoonshot Kimimoonshot-v1-8kDEEPSEEK_API_KEYDeepSeekdeepseek-chatANTHROPIC_API_KEYClaudeclaude-3-5-sonnet-20241022SILICONFLOW_API_KEY硅基流动 SiliconFlowQwen/Qwen2.5-Coder-32B-InstructBAICHUAN_PROXY_API_KEY百川Baichuan2-Turbo-192kXUNFEI_SPARK_API_PASSWORDXUNFEI_SPARK_API_MODEL讯飞星火XUNFEI_SPARK_API_MODEL表中默认后端模型一列取自仓库源码中的默认值仅在你未显式指定对应厂商的版本变量时生效。命令行一键启动单机服务一切就绪后只需一条命令即可启动完整服务LLM_MODELglm-4-9b-chat dbgpt start webserver --port 6006这是单机部署最关键的一步默认情况下dbgpt start webserver命令会在同一个 Python 进程内同时启动webserver、model controller和model worker三个组件无需分别启动、无需额外编排。命令中--port 6006指定了 WebServer 的对外端口。启动命令背后的进程模型命令树在 cli_scripts.py 与 cli_scripts.py 中组装start命令组下挂载了webserver同时注册了别名web而start controller、start worker、start apiserver则来自模型集群模块见 packages/dbgpt-core/src/dbgpt/model/cli.py。也就是说dbgpt start webserver是单进程三合一的快捷方式如果需要更灵活地拆分部署例如多机集群、独立扩缩容 Model Worker也可以分别执行dbgpt start controller、dbgpt start worker与dbgpt start apiserver。三个组件的职责分别是webserver提供 Web 前端与 HTTP API 服务。入口实现见 packages/dbgpt-app/src/dbgpt_app/_cli.py最终调用run_webserver加载配置并交由 uvicorn 监听指定 host/port见 packages/dbgpt-app/src/dbgpt_app/dbgpt_server.pymodel controller模型注册中心负责接收各 Model Worker 的心跳注册、维护实例健康状态并分发推理请求。核心类为LocalModelController提供register_instance、get_all_instances、send_heartbeat等接口见 packages/dbgpt-core/src/dbgpt/model/cluster/controller/controller.pymodel worker真正加载模型权重、执行推理的进程LLM Worker 的类型为llm。所有 Worker 由WorkerManager统一管理Worker 会周期性向 Controller 上报心跳以维持实例注册信息。start 命令的扩展选项从 packages/dbgpt-app/src/dbgpt_app/_cli.py 的选项装饰器可以看出dbgpt start webserver还支持若干实用参数参数说明-c, --config指定 TOML 配置文件路径省略时使用~/.dbgpt/下的活跃 profile 或触发首次安装向导-p, --profile指定供应商 profile如openai/kimi/qwen/deepseek/ollama覆盖活跃 profile-y, --yes非交互模式跳过设置向导适用于 CI/CD 与脚本化安装--api-key指定所选供应商的 API Key也可通过厂商自身环境变量提供-d, --daemon守护进程模式后台运行日志写入logs/目录停止用dbgpt stop端口说明本文命令显式指定--port 6006若未指定WebServer 默认端口为 5670见 config.py 的DBGPT_WEBSERVER_PORT而 Model Controller 的默认监听端口为 8000见 config.py 的MODEL_PORT/MODEL_SERVER。查看模型服务状态dbgpt model list启动完成后通过dbgpt model list查看当前所有已注册的模型服务实例dbgpt model list命令输出如下字段顺序与格式因版本略有差异-------------------------------------------------------------------------------------------------------------- | Model Name | Model Type | Host | Port | Healthy | Enabled | Prompt Template | Last Heartbeat | -------------------------------------------------------------------------------------------------------------- | glm-4-9b-chat | llm | 172.17.0.9 | 6006 | True | True | | 2023-10-16T19:49:59.201313 | | WorkerManager | service | 172.17.0.9 | 6006 | True | True | | 2023-10-16T19:49:59.246756 | --------------------------------------------------------------------------------------------------------------其中第一行glm-4-9b-chatModel Type 为llm是实际承载推理的模型 Worker 实例第二行WorkerManagerModel Type 为service是Model Workers 的管理进程两者都会在 Controller 注册并持续上报心跳。命令底层实现dbgpt model list由 packages/dbgpt-core/src/dbgpt/model/cli.py 中的list子命令实现它通过ModelRegistryClient连接 Model Controller调用get_all_model_instances()拉取全部实例该远程调用链路见 packages/dbgpt-core/src/dbgpt/model/cluster/client.py 与 controller.py再以PrettyTable渲染为表格。每一行对应一个注册实例Healthy与Last Heartbeat直接反映了该实例与 Controller 的心跳连接是否正常——如果模型未正常加载这里通常会显示HealthyFalse或缺少对应行。dbgpt model list所在的dbgpt model命令组还支持--address参数默认从环境变量CONTROLLER_ADDRESS读取否则自动探测本地 Controller以及dbgpt model stop、dbgpt model restart等实例管理子命令。命令行对话验证dbgpt model chatdbgpt model list验证的是服务已注册而dbgpt model chat验证的是模型真的能对话。执行dbgpt model chat --model_name glm-4-9b-chat该命令会启动一个终端交互式对话页面直接在命令行与模型对话Chatbot started with model glm-4-9b-chat. Type exit to leave the chat. You: Hello Bot: Hello! How can I assist you today? You:在提示符You:后输入内容回车即可获得模型回复。交互命令与实现细节该功能对应 model/cli.py 的chat子命令核心逻辑_chat_stream见 model/cli.py通过WorkerManager.generate_stream实现流式输出。交互过程中还支持以下内建命令/exit退出对话也可直接输入exit/clear清屏/reset重置当前对话历史重新开始一轮对话。对话历史默认保存在~/.dbgpt_cli_chat_history文件中便于回看。如需在对话中携带系统提示词可追加--system参数。停止服务与常见问题停止服务前台模式下按CtrlC即可若使用-d/--daemon后台启动则执行dbgpt stop对应stop命令组见 cli_scripts.py它会依次停止所有已注册的服务。无 GPU 机器上模型加载失败请确认LLM_MODELproxyllm已设置且PROXY_API_KEY、PROXY_SERVER_URL正确。若误将LLM_MODEL指向本地模型而机器无 GPU推理会失败或极其缓慢。Embedding 模型缺失知识库相关功能依赖本地 Embedding 模型如text2vec-large-chinese请确保其位于models/目录或通过LLM_MODEL_PATH指定实际路径。端口被占用单机部署中 WebServer 端口由--port指定默认 5670Model Controller 默认 8000请确保两者未被占用且防火墙放行。小结单机部署是体验 DB-GPT 全部能力对话、知识库、数据应用的最快路径源码安装 → 虚拟环境 → 依赖安装 → 模型准备 → 环境变量配置 →dbgpt start webserver一键启动 →dbgpt model list/dbgpt model chat双重验证。理解这条链路背后的单进程三合一机制WebServer Model Controller Model Worker 同进程运行与环境变量解析规则将帮助你更从容地排障并为后续迁移到多机模型集群部署分别启动 controller / worker / apiserver打下基础。【免费下载链接】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),仅供参考
返回列表