文章目录
- **步骤 1: 启动 vLLM 服务**
- **方式 1: 直接命令行启动**
- **方式 2: Docker 启动**
- **步骤 2: 配置 Open WebUI 连接 vLLM**
- **方法 1: 修改 Open WebUI 环境变量**
- **方法 2: 通过 `docker-compose.yml` 部署**
- **步骤 3: 在 Open WebUI 中添加模型**
- **验证是否成功**
- **常见问题解决**
- **性能优化建议**
要将vLLM集成到Open WebUI中,可以通过以下步骤实现。vLLM 提供高性能的 LLM 推理服务,而 Open WebUI 则是一个可扩展的 Web 前端。集成核心是通过 vLLM 的 OpenAI 兼容 API 与 Open WebUI 连接。
在前面两个章节,我们介绍了如何在线启动vllm服务,下面将vllm集成到openweb-ui中
步骤 1: 启动 vLLM 服务
首先启动 vLLM 服务,暴露 OpenAI 兼容的 API 接口(默认端口9898)。
方式 1: 直接命令行启动
conda activate vLLM_cuda128_env_python312cd/home/vLLM/models/Qwen vllm serve Qwen3-0.6B --served-model-name Qwen3-0.6B--api_keyhhh6688--host192.168.11.103--port9898--trust_remote_code--tensor_parallel_size4--gpu_memory_utilization0.8方式 2: Docker 启动
dockerrun-d\--gpusall\-p8000:8000\--namevllm-server\vllm/vllm-openai:latest\--modelmeta-llama/Meta-Llama-3-8B-Instruct步骤 2: 配置 Open WebUI 连接 vLLM
修改 Open WebUI 的配置,指向 vLLM 的 API 地址。
方法 1: 修改 Open WebUI 环境变量
在启动 Open WebUI 时,添加以下环境变量:
dockerrun-d\-p3000:8080\-eOPENAI_API_BASE_URL=http://vllm-server:9898/v1\-eOPENAI_API_KEY=hhh6688\# vLLM 无需验证-eWEBUI_SECRET_KEY=my-secret\--nameopenwebui\--linkvllm-server\# 如果 vLLM 和 Open WebUI 在同一台机器ghcr.io/open-webui/open-webui:main方法 2: 通过docker-compose.yml部署
version:'3.8'services:vllm:image:vllm/vllm-openai:latestcommand:--model meta-llama/Meta-Llama-3-8B-Instructports:-"8000:8000"deploy:resources:reservations:devices:-driver:nvidiacount:2# 使用 2 个 GPUopenwebui:image:ghcr.io/open-webui/open-webui:mainports:-"3000:8080"environment:-OPENAI_API_BASE_URL=http://vllm:9898/v1-OPENAI_API_KEY=hhh6688-WEBUI_SECRET_KEY=my-secretdepends_on:-vllm运行:
docker-composeup-d步骤 3: 在 Open WebUI 中添加模型
- 访问 Open WebUI 的 Web 界面:
http://localhost:3000 - 登录后进入Settings → Model Provider。
- 选择OpenAI作为提供商。
- 填写:
- Model Name: 任意名称(如
Llama-3-8B-vLLM) - API Base URL:
http://vllm:8000/v1(或你的 vLLM 地址) - API Key:
EMPTY
- Model Name: 任意名称(如
- 保存后,在聊天界面选择该模型即可使用。
验证是否成功
- 检查 vLLM 日志:
出现类似日志表示请求成功:dockerlogs vllm-serverINFO: 127.0.0.1:12345 - "POST /v1/chat/completions HTTP/1.1" 200 OK - 在 Open WebUI 中发送测试消息,观察响应速度和输出内容。
常见问题解决
连接失败:
- 确保
OPENAI_API_BASE_URL正确(一般为http://<vllm-ip>:8000/v1)。 - 如果使用 Docker,确保容器在同一网络(或通过
--link连接)。
- 确保
GPU 资源不足:
- 减少
--tensor-parallel-size(如从2改为1)。 - 使用量化模型(如
--quantization awq)。
- 减少
模型加载失败:
- 检查模型路径是否正确(HuggingFace 模型需提前下载或确认有访问权限)。
- 使用离线模型时挂载本地目录:
dockerrun-v/path/to/models:/models vllm/vllm-openai:latest--model/models/llama-3-8b
Open WebUI 无法识别模型:
- 在Model Provider中检查是否选择
OpenAI类型。 - 确保
OPENAI_API_KEY设置为EMPTY(vLLM 无需密钥)。
- 在Model Provider中检查是否选择
性能优化建议
- 批处理:启动 vLLM 时添加
--max-num-batched-tokens 4096提高吞吐量。 - 量化:添加
--quantization awq减少显存占用(需模型支持)。 - 多 GPU:增加
--tensor-parallel-size加速推理。
通过以上步骤,即可将 vLLM 的高性能推理能力无缝集成到 Open WebUI 的交互界面中。