文章目錄
- **步驟 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 的交互界面中。