文章目录
- **步骤 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_python312
cd /home/vLLM/models/Qwen
vllm serve Qwen3-0.6B --served-model-name Qwen3-0.6B --api_key hhh6688 --host 192.168.11.103 --port 9898 --trust_remote_code --tensor_parallel_size 4 --gpu_memory_utilization 0.8
方式 2: Docker 启动
docker run -d \--gpus all \-p 8000:8000 \--name vllm-server \vllm/vllm-openai:latest \--model meta-llama/Meta-Llama-3-8B-Instruct
步骤 2: 配置 Open WebUI 连接 vLLM
修改 Open WebUI 的配置,指向 vLLM 的 API 地址。
方法 1: 修改 Open WebUI 环境变量
在启动 Open WebUI 时,添加以下环境变量:
docker run -d \-p 3000:8080 \-e OPENAI_API_BASE_URL=http://vllm-server:9898/v1 \-e OPENAI_API_KEY=hhh6688 \ # vLLM 无需验证-e WEBUI_SECRET_KEY=my-secret \--name openwebui \--link vllm-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-compose up -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 日志:
出现类似日志表示请求成功:docker logs vllm-server
INFO: 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 模型需提前下载或确认有访问权限)。
- 使用离线模型时挂载本地目录:
docker run -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 的交互界面中。