> 技术文档 > vllm & open-webui 部署属于你的LLMs_vllm 界面

vllm & open-webui 部署属于你的LLMs_vllm 界面

最近在工作群里看到这张图片:

很明显这个模型路径是本地部署的,但好像又有着非常友好的交互界面。我以为是vllm还有一些UI界面可以耍,但翻遍了手册也没找到。以我好学的性格,就跑到同事面前“打探”了情报,才知道是另一个工具:open-webui。

站在巨人的肩膀上,来学习一下这个extensible user-friendly self-hosted AI interface吧。

直接上图:

说说open-webui优点:

  1. 自定义背景图,设计属于你的LLM
  2. 添加系统提示词,全局定义模型的人设
  3. 添加“记忆”,让模型记住你的人设
  4. 长上下文对话
  5. 支持多账号管理,分级管理
  6. ......

功能实在是齐全,用起来很不错。

下面来在linux系统使用 open-webui 集成 vllm 的OpenAI-Compatible Server

1.在docker中安装vllm:

首先当然是启动docker:

docker run --gpus \'\"device=0,1\"\' -it --name vllm -v /home/zilong/.cache/modelscope/hub/models:/root/.cache/modelscope/hub/models -p 8080:8080 mcc-gpu:v1

这里 --gpus  \'\"device=0,1\"\' 只使用宿主机的前两个gpu

-v 挂载魔搭社区的下载目录到docker,避免反复cp

-p 8080:8080 映射宿主机端口到docker中

mcc-gpu:v1是image名称,需要提前下载镜像包

容器启动后,我们直接安装python3:

sudo apt updatesudo apt install python3

然后安装vllm:

pip3 install vllm

当然如果物理机的编译器版本不老旧的话,也可以直接在虚拟环境中安装vllm。

2.启动vllm服务器

vllm serve ~/.cache/modelscope/hub/models/Qwen/Qwen2___5-14B-Instruct --dtype auto --served-model-name qwen-14B-instruct --api-key EMPTY --gpu-memory-utilization 0.60 --tensor-parallel-size 2 --port 8080

vllm serve 后直接跟模型文件的 路径

--dtype设置为auto

模型名称随便设置,最终UI界面会显示这个名称

api为EMPTY

设置gpu最大显存用量60%和双卡张量并行

--port 要和之前设置的映射docker 端口一致

我们就有了Open AI兼容的API服务:

api_key: EMPTY

base_url: http://:8080/v1

接下来我们要把这个服务接入open-webui

3.启动OpenAI API Usage open-webui

docker run -d -p 0.0.0.0:3000:8080 -e OENAI_API_KEY=EMPTY -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

-d 分离模式化,让open-webui在后台运行

-p 0.0.0.0:3000:8080,宿主机3000端口映射到docker的8080端口。注意,因为用的是OpenAI API Usage open-webui,容器端口必须监听OpenAI服务,此时只有docker的8080端口在监听,所以docker的映射端口必须设置为8080,否则无法访问宿主机的3000端口。

-v open-webui:/app/backend/data 表示将 Docker 卷 open-webui 绑定到容器内的 /app/backend/data 目录,即使容器重启,用户的设置信息、历史记录等数据也不会丢失。、

容器名称为open-webui

ghcr.io/open-webui/open-webui:main是镜像名称,会自动下载镜像

可以docker ps查看open-webui服务status:

 Up 14 second (health: starting),表示正在准备服务

如果显示:

Up About a minute (unhealthy)

可以重启docker:

docker restart open-webui

等待status:

 Up About a minute (healthy)

现在就可以访问open-webui了:

http://:3000

进入到UI界面,首先注册管理员账号,注册完就可以使用open-webui了

4.open-webui集成模型服务

点击右上角头像-设置:

外部链接,+号:

将刚刚拿到的Open AI服务填入:

保存完就可以选择模型名称进行对话啦。

最后是相关的参考地址:

1. vllm  部署模型,提供 OpenAI API兼容的服务地址:OpenAI-Compatible Server — vLLM

2.open-webui地址:open-webui

无线路由器设置