不花一分钱!把本地大模型装进手机,全家共享+权限管控全攻略

0 阅读5分钟

前情提要

上篇文章Ollama+OpenWebUI 最佳组合:本地大模型可视化交互方案,我们是通过Pythonpip命令安装OpenWebUI的,这种安装方式操作步骤较繁琐,本次我们改用 Python 包管理器 uv 来安装 OpenWebUI,仅需两行命令即可完成,更为便捷。OpenWebUI官网安装教程如下截图:

OpenWebUI官网安装教程

安装 uv

Ubuntu系统上面安装uvuv 的 GitHub

uv的GitHub首页

uv 的官方文档,复制uv官方文档上面的安装命令:

# 一行命令安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh

安装uv

安装成功

安装完成后,需执行source $HOME/.local/bin/env 命令重新加载环境变量,确保 uv 能正常调用。

# 重新加载环境变量
source $HOME/.local/bin/env

重新加载环境变量

通过 uv 安装并运行 OpenWebUI

执行如下命令安装并运行OpenWebUI:

# 该命令会自动下载Python3.11以及OpenWebUI的所有依赖,并在下载成功直接运行OpenWebUI
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve

uvx命令正在下载OpenWebUI相关依赖

所有依赖已经全部下载完成了

OpenWebUI第一次运行时也会下载相关依赖

OpenWebUI运行成了

环境变量 DATA_DIR

我们上面执行的安装命令DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve里面设置了一个临时的环境变量:DATA_DIR,该环境变量的作用OpenWebUI的解释如下:

临时环境变量DATA_DIR的作用

访问 OpenWebUI

在浏览器地址栏里面输入:http://localhost:8080/

通过浏览器访问OpenWebUI

创建管理员账号

创建管理员账号

第一个创建的用户将获得管理员的权限

选择本地大模型

在这里选择你的本地大模型

设置对话级别提示词

注意,我们这里设置的是对话级别的提示词和参数,只针对当前对话生效。新建对话之后,你要重新设置。因为不同的对话,你要咨询的问题可能完全不是一个领域的。

我们可以设置一个基本的提示词,这个基本提示词的作用就是我们跟本地大模型之间的约定。大模型在回答我们问题的时候,要遵守这个约定。OpenWebUI会将这段设定好的提示词直接发送给大模型。这样后续在我们跟大模型沟通的时候就不需要我们每次都先给大模型制定约束了。

设置大模型的固定提示词和各种参数

给大模型设置基本的规则

全局共享提示词

在设置菜单里面设定的提示词,所有对话共享。是通用的提示词。

点击右上角的头像

设置所有对话共享的提示词

全局提示词

底部功能

OpenWebUI底部的功能

怎么使用 OpenWebUI

OpenWebUI都有哪些功能,可以参考OpenWebUI 的官方文档,如下截图:

OpenWebUI的功能特性

通过手机访问 OpenWebUI

想通过手机访问Ubuntu系统中部署的OpenWebUI或者想让和电脑连接同一个Wifi的朋友和家人可以通过手机访问你电脑上部署的OpenWebUI,需要先停止当前的OpenWebUI

监听同一局域网的所有 IP 地址

使用如下命令重新启动OpenWebUI,让OpenWebUI监听同一局域网的所有 IP 地址发往8080端口的数据。

# 设置OpenWebUI监听的地址为0.0.0.0:8080。0.0.0.0代表同一局域网的手机、其他电脑,甚至公网(若端口映射+防火墙放行)都能连接。
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve --host 0.0.0.0 --port 8080

让OpenWebUI监听0.0.0.0这个地址

启动成功后,在另一终端中运行如下命令,验证OpenWebUI监听0.0.0.0:8080是否成功:

# 检查是否监听 0.0.0.0
ss -tlnp | grep 8080

OpenWebUI监听0.0.0.0.8080成功

设置防火墙规则

Windows上面打开防火墙应用,在防火墙中允许访问8080端口。具体步骤参考下面截图:

在Windows上面打开防火墙

选中防火墙的入站规则,右键新建规则:

新建入站规则

选择端口点击下一步

设置允许访问的端口8080

允许连接下一步

全部勾选下一步

给防火墙的规则起个名字

防火墙规则配置完成

让 Windows 将请求转发给 WSL2 里面的 Ubuntu

通过 WSL2 安装的 Ubuntu 系统本质是 Windows 的子系统(非纯虚拟机),其网络环境相对独立,因此需要将 Windows 的网络请求转发至 WSL2 中的 Ubuntu。

PowerShell中配置端口转发规则,必须以管理员权限打开PowerShell

以管理员权限打开PowerShell

PowerShell里面执行如下命令查看WSLUbuntu系统的IP地址:

# 查看WSL中Ubuntu系统的IP地址
wsl hostname -I

查看WSL中Ubuntu的IP地址

执行如下命令添加转发规则:

# 删除旧的转发规则(如果有)
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=8080
# 添加新的转发规则
netsh interface portproxy add v4tov4 `
  listenaddress=0.0.0.0 listenport=8080 `
  connectaddress=172.26.227.225 connectport=8080
# 查看添加成功的规则
netsh interface portproxy show all

在Windows的PowerShell里面添加网络转发规则

💡 重要:WSL2 的 IP 每次重启会变化,如果重启后无法访问,需要重新执行上述命令更新 IP。

查看 Windows 的 IP 地址

PowerShell中输入ipconfig命令查看WindowsIPV4地址:

查看Windows的IP V4地址

使用手机浏览器访问

在手机浏览器上面输入http://上面查到的Windows的IPV4地址:8080。比如我的地址为:http://192.168.0.199:8080

在手机浏览器里面访问OpenWebUI

添加用户

在你朋友访问之前,你需要先通过管理员权限给他创建一个用户。

点击管理员面板

添加新用户

保存新添加的用户

把账号发给你朋友

将新增用户的账号密码发送给朋友,对方在手机端输入登录后,即可使用你部署在电脑上的本地大模型。

在手机上输入我们刚刚新增的用户

你朋友就登陆成功了

设置你朋友的权限

若为家人(如子女)创建账号,可通过权限配置限制其仅能使用指定大模型,且禁止删除聊天记录。以及你可以设置你儿子使用的大模型禁止回答某一类问题。我们可以通过设置不同的用户组来限制用户的访问权限。

创建一个特定的模型

点击工作空间创建一个特别的模型

设置新增模型的基本信息

设置模型ID-必须是纯英文的

添加大模型的访问权限

设置访问权限

保存并创建

创建成功

用户组

通过用户组,来限制用户的权限。比如,禁止这个用户组里面的用户删除他们的对话记录。

添加用户组

设置用户组的名字

设置用户组的权限

编辑用户组给用户组添加用户

给这个用户组添加用户

修改用户的默认权限

禁止用户删除会话消息

让你儿子在手机上刷新 OpenWebUI

让子女在手机端刷新 OpenWebUI 页面,即可生效权限限制。

手机上可以使用大模型了

在手机上查看对话记录

点击删除会话

确认删除

删除会话失败

查看儿子的会话记录

查看用户的对话记录

点击用户的对话记录

可以查看用户的所有对话记录

开启新用户注册功能

上面的方式是新增用户时,由管理先新增一个用户。然后把新用户的账号和密码发给对方。现在我们可以开启新用户注册的功能。

开启新用户注册

注册新用户

让你朋友在手机浏览器上面访问http://192.168.0.199:8080并填写用户名和密码进行注册。

点击注册按钮

填写用户名和账号密码

注册成功等待管理员审核

管理员审核

审核新用户

审核通过

审核通过

设置新增用户的用户组

给新用户设置可访问的大模型

给新增用户设置可以访问的大模型。最好的办法是,将新用户添加到用户组里面。给大模型添加访问列表时,按照用户组的维度进行添加。

点击管理员面板

私有的大模型默认只有管理员可以访问

点击添加访问

添加用户的访问权限

点击保存并更新

手机上刷新页面

新用户完成注册并通过管理员审核后,刷新页面即可正常使用大模型功能。

注册成功之后就可以使用大模型了