vLLM(3)vllm在线启动集成openweb-ui

文章目录

      • [**步骤 1: 启动 vLLM 服务**](#步骤 1: 启动 vLLM 服务)
        • [**方式 1: 直接命令行启动**](#方式 1: 直接命令行启动)
        • [**方式 2: Docker 启动**](#方式 2: Docker 启动)
      • [**步骤 2: 配置 Open WebUI 连接 vLLM**](#步骤 2: 配置 Open WebUI 连接 vLLM)
        • [**方法 1: 修改 Open WebUI 环境变量**](#方法 1: 修改 Open WebUI 环境变量)
        • [**方法 2: 通过 `docker-compose.yml` 部署**](#方法 2: 通过 docker-compose.yml 部署)
      • [**步骤 3: 在 Open WebUI 中添加模型**](#步骤 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: 直接命令行启动
bash 复制代码
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 启动
bash 复制代码
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 时,添加以下环境变量:

bash 复制代码
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 部署
yaml 复制代码
version: '3.8'

services:
  vllm:
    image: vllm/vllm-openai:latest
    command: --model meta-llama/Meta-Llama-3-8B-Instruct
    ports:
      - "8000:8000"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 2  # 使用 2 个 GPU

  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      - OPENAI_API_BASE_URL=http://vllm:9898/v1
      - OPENAI_API_KEY=hhh6688 
      - WEBUI_SECRET_KEY=my-secret
    depends_on:
      - vllm

运行:

bash 复制代码
docker-compose up -d

步骤 3: 在 Open WebUI 中添加模型

  1. 访问 Open WebUI 的 Web 界面:http://localhost:3000
  2. 登录后进入 Settings → Model Provider
  3. 选择 OpenAI 作为提供商。
  4. 填写:
    • Model Name : 任意名称(如 Llama-3-8B-vLLM
    • API Base URL : http://vllm:8000/v1(或你的 vLLM 地址)
    • API Key : EMPTY
  5. 保存后,在聊天界面选择该模型即可使用。

验证是否成功

  • 检查 vLLM 日志

    bash 复制代码
    docker logs vllm-server

    出现类似日志表示请求成功:

    复制代码
    INFO:     127.0.0.1:12345 - "POST /v1/chat/completions HTTP/1.1" 200 OK
  • 在 Open WebUI 中发送测试消息,观察响应速度和输出内容。


常见问题解决

  1. 连接失败

    • 确保 OPENAI_API_BASE_URL 正确(一般为 http://<vllm-ip>:8000/v1)。
    • 如果使用 Docker,确保容器在同一网络(或通过 --link 连接)。
  2. GPU 资源不足

    • 减少 --tensor-parallel-size(如从 2 改为 1)。
    • 使用量化模型(如 --quantization awq)。
  3. 模型加载失败

    • 检查模型路径是否正确(HuggingFace 模型需提前下载或确认有访问权限)。

    • 使用离线模型时挂载本地目录:

      bash 复制代码
      docker run -v /path/to/models:/models vllm/vllm-openai:latest --model /models/llama-3-8b
  4. Open WebUI 无法识别模型

    • Model Provider 中检查是否选择 OpenAI 类型。
    • 确保 OPENAI_API_KEY 设置为 EMPTY(vLLM 无需密钥)。

性能优化建议

  • 批处理 :启动 vLLM 时添加 --max-num-batched-tokens 4096 提高吞吐量。
  • 量化 :添加 --quantization awq 减少显存占用(需模型支持)。
  • 多 GPU :增加 --tensor-parallel-size 加速推理。

通过以上步骤,即可将 vLLM 的高性能推理能力无缝集成到 Open WebUI 的交互界面中。