open-webui笔记
open-webui提供了一个简单拆箱即用的本地部署llm大模型的网页交互界面,可以很方便地通过端口转发部署到外网,并且提供了用户注册登录等一系列安全性方面的功能。
安装
假设,你试图把open-webui运行在13000端口上。
其中一个安装方式是通过拉取现成的docker镜像,
bash
docker run -d -p 13000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
但不幸的是,因为一些原因,国内的docker镜像拉取的网络连接状态只能说是一场灾难,导致原本最简单的方法其实变成了最难搞定的方法。
好在,open-webui即使通过python安装,也非常简单,只需要一行命令。
考虑到国内环境稳定性,在新建conda环境后,使用国内的pip镜像源进行安装。
bash
conda create -n open-webui python==3.10
# 按下y确认新建虚拟环境
conda activate open-webui # 激活虚拟环境
pip install open-webui -i https://mirrors.aliyun.com/pypi/simple # 安装
这个安装非常大,即使使用国内镜像源,也可能需要几十分钟的时间。
启动
安装完成后,就可以通过命令open-webui serve启动open-webui,然后通过ip地址:端口号直接访问open-webui的管理页面。
它默认不会安装自动启动,因此在ubuntu系统下,可以将其注册为systemd自启动服务。
首先定位服务端的绝对路径:
bash
conda activate open-webui # 激活虚拟环境
which open-webui
这会打印出你当前服务端文件的所在路径,将转换为绝对路径记录下来。
然后去systemd的系统服务配置文件夹里面新建配置文件:
bash
cd /etc/systemd/system/ # 进入系统服务配置文件夹
sudo vim open-webui.service # 新建配置文件
然后在配置文件里面写入(开启登录验证并使用ollama进行rag):
bash
[Unit]
Description=Open WebUI Service
After=network.target
[Service]
Type=simple
User=你的用户名
Group=你的用户名
WorkingDirectory=/home/你的用户名
Environment="WEBUI_AUTH=True"
Environment="WEBUI_SECRET_KEY=随便写个英文数字下划线混合的字符串"
Environment="HOST=0.0.0.0"
Environment="PORT=13000"
Environment="RAG_EMBEDDING_ENGINE=ollama"
ExecStart=/上一步中得到的服务端绝对路径/open-webui serve --host ${HOST} --port ${PORT}
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
然后应用修改:
bash
systemctl daemon-reload
systemctl enable open-webui.service
systemctl start open-webui.service
此时打开浏览器,进入ip:13000就可以访问open-webui界面了。
第一个注册的用户会默认成为管理员。
联网检索
管理员注册登录后,在右上角点击头像,选择管理员面板。
然后进入设置-联网搜索,在里面设置你的联网搜索引擎类型和密钥。
如果你有网页加载引擎,配置它,如果没有,则勾选绕过网页加载器。
建议勾选绕过嵌入和检索。
点击右下角保存。
此时回到对话页面,在正中间对话框的下面,选择扩展功能,里面可以打开联网检索与代码解释器。
注意,打开联网检索后,所有问题都会进行联网检索,如果你希望模型不要这么做,你需要在系统提示词里面写入提示,告诉模型什么时候进行联网检索,什么时候直接回答。
封装模型
默认模型是ollama上拉取的各种模型,可以在它们的基础上进行封装设定。
点击主界面左侧的工作空间,选择模型。
然后在右边选择创建模型。
这里可以封装一个新模型,你可以自定义它的名字、选择它的基础模型来源、默认系统提示词,然后在默认功能那里打开联网搜索和代码解释器,这会让你不用每次都在新对话那里勾选打开,完成后在最下面选择保存并创建。
点击新对话,在左上角选择你封装好的模型后,点击下面的小字设为默认。
现在你每次打开新对话,都会使用你默认最喜欢的配置了~