Ollama 使用 Open WebUI 的聊天界面
本教程指导用户在Ubuntu或Debian服务器上安装Ollama,设置带有Open WebUI的聊天界面,并使用自定义语言模型。
简介
本教程将解释如何在 Ubuntu 或 Debian 服务器上安装 Ollama 来运行语言模型,并展示如何设置一个带有 Open WebUI 的聊天界面,以及如何使用自定义语言模型。
预备知识
- 一台运行 Ubuntu 或 Debian 的服务器
- 需要 root 用户或具有 sudo 权限的用户访问
- 在开始之前,需要完成一些基本配置,包括防火墙设置
可以选择在同一台服务器上安装 Ollama 和 Web UI,也可以在两台单独的服务器上安装。如果选择后者,需要两台运行 Ubuntu 或 Debian 的服务器。
本教程在 Ubuntu 22.04 和 Debian 12 上测试通过。
步骤 1 - 安装 Ollama
以下步骤说明如何手动安装 Ollama。为了快速开始,可以使用安装脚本并继续 "步骤 2 - 安装 Ollama WebUI"。
安装脚本: curl https://ollama.ai/install.sh | sh
手动安装 Ollama
-
如果服务器有 Nvidia GPU,确保安装了 CUDA 驱动
nvidia-smi
如果 CUDA 驱动未安装,请现在安装。在配置器中选择操作系统和安装类型以查看需要运行的命令。
sudo apt update sudo apt install -y nvidia-kernel-open-545 sudo apt install -y cuda-drivers-545
-
下载 Ollama 二进制文件并创建 Ollama 用户
sudo curl -L https://ollama.ai/download/ollama-linux-amd64 -o /usr/bin/ollama sudo chmod +x /usr/bin/ollama sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama
-
创建服务文件
默认情况下,可以通过 127.0.0.1 端口 11434 访问 Ollama API,这意味着 API 仅在本地主机上可用。如果需要外部访问 Ollama,可以取消注释
Environment
并设置 IP 地址为 0.0.0.0,这将允许通过服务器的公共 IP 访问 API。确保服务器上的防火墙允许访问端口 11434。如果只有一台服务器,不需要修改以下命令。
sudo bash -c 'cat <<'EOF' >> /etc/systemd/system/ollama.service [Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 #Environment="OLLAMA_HOST=0.0.0.0:11434" [Install] WantedBy=default.target EOF'
-
重新加载 systemd 守护进程并启用 Ollama 服务
sudo systemctl daemon-reload sudo systemctl enable ollama sudo systemctl start ollama
可以使用
ollama --version
检查安装是否成功。使用
systemctl status ollama
检查状态。如果 Ollama 未激活并运行,确保运行systemctl start ollama
。在终端中,现在可以启动语言模型并提问。例如:
ollama run llama2
可以使用
ollama rm <model-name>
删除模型。
步骤 2 - 安装 Open WebUI
在 Ollama 的 GitHub 文档中,可以找到不同的 Web 和终端集成列表。以下示例解释如何安装 Open WebUI。
手动安装 Open WebUI
-
安装 npm 和 pip,克隆 WebUI 仓库,并创建示例环境文件的副本
sudo apt update && sudo apt install npm python3-pip git -y git clone https://github.com/ollama-webui/ollama-webui.git cd ollama-webui cp -RPp .env.example .env
-
在
.env
文件中,默认情况下连接 Ollama API 的地址设置为localhost:11434
。如果 Ollama API 安装在与 Open WebUI 相同的服务器上,可以保持默认设置。如果安装在不同服务器上,编辑.env
文件并替换默认值为安装 Ollama 的服务器地址。 -
安装
package.json
中列出的依赖并运行名为build
的脚本npm i && npm run build
-
安装所需的 Python 包
cd backend sudo pip install -r requirements.txt -U
-
使用
ollama-webui/backend/start.sh
启动 Web UIsh start.sh
如果 Ollama 安装在不同服务器,确保防火墙允许访问 API 端口,默认端口为 11434。在
start.sh
中,端口设置为 8080,意味着可以通过http://<ip-address>:8080
访问 Open WebUI。如果有防火墙,需要允许该端口。
使用 Docker 安装 Open WebUI
-
安装 Docker。如果还没有安装,可以使用本教程安装 Docker。
-
在与 Ollama 相同的服务器上安装 Open WebUI
sudo docker run -d -p 3000: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
-
在与 Ollama 不同的服务器上安装 Open WebUI
sudo docker run -d -p 3000:8080 -e OLLAMA_API_BASE_URL=http://<ip-address>:11434/api -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
替换
<ip-address>:11434
为安装 Ollama 的服务器地址。在上述 Docker 命令中,端口设置为 3000,意味着可以通过
http://<ip-address>:3000
访问 Open WebUI。如果有防火墙,需要允许该端口。
步骤 3 - 允许 Web UI 端口
如果有防火墙,确保允许访问 Open WebUI 端口。如果手动安装,允许 8080 TCP 端口。如果使用 Docker,允许 3000 TCP 端口。
使用 netstat
查看使用的端口。
netstat -tulpn | grep LISTEN
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:11434 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
端口 11434 用于 Ollama API,端口 8080 用于 Web 界面。
管理 ufw 防火墙规则:
查看当前防火墙设置
sudo ufw status
示例输出:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
允许 8080 或 3000 TCP 端口
sudo ufw allow proto tcp to any port 8080
如果使用 Docker,替换 8080 为 3000。
查看新的防火墙设置
sudo ufw status
步骤 4 - 添加模型
访问 Web UI 后,需要创建第一个用户账号。此用户将拥有管理员权限。要开始聊天,需要选择一个模型。可以在 Ollama 官方网站上浏览模型列表。在本例中,我们将添加 "llama2"。
-
在右上角选择设置图标
-
转到 "Models",输入一个模型并选择下载按钮
-
等待消息弹出:“Model 'llama2' has been successfully downloaded.”
如果出现错误消息“Server Connection Error”,可能是 Ollama 未激活并运行。在服务器上使用systemctl status ollama
检查状态并确保运行sudo systemctl start ollama
。 -
关闭设置返回聊天界面
-
在聊天界面顶部选择一个模型并添加
-
如果想添加多个模型,可以使用顶部的加号
-
添加所需模型后,可以开始提问。如果添加了多个模型,可以在答案之间切换
步骤 5 - 添加自定义模型
可以通过用户界面在 http://<ip-address>:8080/modelfiles/create/
添加新模型。如果需要,通过终端添加新模型。首先,连接到安装 Ollama 的服务器。使用 ollama list
列出已有模型。
创建模型文件
在 Ollama GitHub 文档中可以找到模型文件的要求。在模型文件的第一行 FROM <model>
指定要使用的模型。在本
例中,我们将修改现有模型 llama2。如果要添加全新模型,需要指定模型文件路径(例如 FROM ./my-model.gguf
)。
nano new-model
保存以下内容:
FROM llama2 # 数值越高,回答越有创意 PARAMETER temperature 1 # 设置为 "0" 时,模型在生成回答时不会考虑任何先前的上下文或对话历史。每个输入都是独立的。 # 设置为较高数值(如 "4096")时,模型在生成回答时会考虑先前的上下文或对话历史。"4096" 是将被考虑的 token 数量。 PARAMETER num_ctx 4096 # 设置聊天助手在回答中的 "性格"。可以设置聊天助手以何种身份和风格进行回答。 SYSTEM You are a moody lama that only talks about its own fluffy wool.
从模型文件创建模型
ollama create moody-lama -f ./new-model
替换 moody-lama
为新模型的唯一名称。
检查新模型是否可用
使用 ollama
命令列出所有模型,moody-lama
应在列表中。
ollama list
在 WebUI 中使用你的模型
返回 Web UI,模型应在 "Select a model" 列表中。如果尚未显示,刷新页面。
结论
本教程介绍了如何在自己的服务器上托管 AI 聊天,并如何添加自定义模型。
许可证: MIT