在追求更便捷、更个性化 AI 体验的今天,本地部署大型语言模型(LLM)正成为一种趋势。而 Open WebUI(以前称为 OLLAMA-WEBUI)作为一款优秀的前端界面,极大地简化了与本地 LLM 的交互过程,让你能够轻松构建属于自己的本地 AI 助手。

本文将详细介绍 Open WebUI 的部署过程,帮助你快速上手,享受本地 AI 的强大与自由。

Open WebUI 是什么?

Open WebUI 是一款开源、用户友好的 Web 界面,专为与 OLLAMA 后端进行交互而设计。

OLLAMA 是一个简化的框架,用于在本地轻松运行和管理 LLM。

通过 Open WebUI,你可以摆脱命令行操作,通过直观的图形界面来:

  • 加载和切换不同的本地 LLM 模型。

  • 进行对话、生成文本、代码等。

  • 管理模型、查看模型信息。

  • 配置模型参数以优化输出。

  • 享受类似 ChatGPT 的流畅对话体验。

为什么选择 Open WebUI 配合 OLLAMA?

  • 本地运行,保护隐私: 所有数据和计算都在你的本地设备上进行,无需担心数据泄露或上传到第三方平台。

  • 离线可用: 模型下载完成后,无需网络连接即可使用,非常方便。

  • 高性能(取决于你的硬件): 如果你的设备拥有强大的显卡,可以获得非常流畅的推理速度。

  • 丰富的模型选择: OLLAMA 社区提供了许多流行的开源 LLM 模型,你可以根据需求选择。

  • 用户友好的界面: Open WebUI 的设计直观易用,即使是新手也能快速上手。

  • 开源免费: 自由使用,无需支付任何费用。

部署前准备

在开始部署 Open WebUI 之前,你需要确保你的系统满足以下要求:

  1. 安装 OLLAMA: Open WebUI 是 OLLAMA 的前端界面,因此首先需要安装并运行 OLLAMA。访问 https://ollama.com/download下载并安装适合你操作系统的 OLLAMA。安装完成后,请确保 OLLAMA 服务正在运行。

  2. 下载所需的 LLM 模型: 使用 OLLAMA 拉取(下载)你想要使用的 LLM 模型。你可以在命令行中运行 ollama pull <model_name> 来下载模型。例如ollama pull llama2 会下载 Llama2 模型。你可以在 OLLAMA 官方网站或社区找到可用的模型列表。

  3. 安装 Docker 或使用 Docker Compose: Open WebUI 最推荐和最便捷的部署方式是使用 Docker。请确保你的系统已经安装了 Docker 和 Docker Compose。如果没有安装,请访问 Docker 官方网站 ([https://www.docker.com/get-started/](https://www.docker.com/get-started/)) 按照指引进行安装。

  4. 稳定的网络连接: 在下载 Docker 镜像和 LLM 模型时需要稳定的网络连接。

部署 Open WebUI

Open WebUI 提供了多种部署方式,最推荐且常用的方法是使用 Docker。

方法一:使用 Docker Compose (推荐)

使用 Docker Compose 部署 Open WebUI 非常方便,只需要一个配置文件。

1. 创建一个 docker-compose.yaml 文件: 在你喜欢的位置(例如 ~/openwebui)创建一个名为 docker-compose.yaml 的文件,并将以下内容粘贴进去:

   services:

     webui:

       image: ghcr.io/open-webui/open-webui:main

       container_name: open-webui

       volumes:

         # 映射数据卷,用于存储用户数据、配置等

         - ./data:/app/backend/data

       ports:

         # 将主机端口 3000 映射到容器端口 8080

         - 3000:8080

       environment:
         # 禁用 OpenAI 集成,卡死的原因就是这个

         - ENABLE_OPENAI_API=False  

         # 启用离线模式,不从 HuggingFace 拉取模型数据

         - OFFLINE_MODE=True        

         # 设置 OLLAMA 后端地址,通常是你的主机 IP 或 localhost:11434

         - OLLAMA_BASE_URL=http://host.docker.internal:11434

         # 可选:设置默认用户,方便自动登录

         # - OPENWEBUI_DEBUG=True

         # - OPENWEBUI_SECRET_KEY=your_secret_key

       restart: always

解释一下配置文件:

  • version: '3.8':指定 Docker Compose 文件格式的版本。

  • services::定义服务。

  • webui::定义一个名为 webui 的服务(你可以随意命名)。

  • image: ghcr.io/open-webui/open-webui:main:指定使用的 Docker 镜像 ghcr.io/open-webui/open-webui:main 是 Open WebUI 的官方镜像main 是最新的稳定版本标签。

  • container_name: open-webui:指定容器的名称,方便管理。

  • volumes::映射数据卷,将主机上的 ./data 目录映射到容器内的 /app/backend/data 目录。这样做的好处是,即使删除并重建容器,你的用户数据、模型配置等都会保留。请确保在创建 docker-compose.yaml 文件的同级目录下创建一个空的 data 文件夹。

  • ports::映射端口,将主机上的 3000 端口映射到容器内的 8080 端口。这意味着你通过访问 http://localhost:3000 来访问 Open WebUI。

  • environment::设置环境变量。

  • OLLAMA_BASE_URL=http://host.docker.internal:11434:非常重要!这是告诉 Open WebUI 如何找到 OLLAMA 后端host.docker.internal 是一个特殊的 DNS 名称,在 Docker Desktop 或一些 Linux 发行版中可以直接解析到宿主机。如果你的系统无法解析,可能需要将这个地址替换为你的主机 IP 地址11434 是 OLLAMA 默认的 API 端口。

    • 其他环境变量是可选的,可以根据需要进行配置。

    • restart: always:设置容器在退出时总是自动重启。

2. 启动容器: 打开终端,切换到包含 docker-compose.yaml 文件的目录,然后运行以下命令启动 Open WebUI 容器:

docker-compose up -d
  • up:启动服务。

  • -d:在后台运行容器。

3. 验证部署: 等待片刻,Docker 会下载镜像并启动容器。你可以使用以下命令查看容器运行状态:

docker-compose ps
  • 如果 STATUS 显示为 Up,则表示容器已成功启动。

4. 访问 Open WebUI: 打开你的浏览器,访问 http://localhost:3000 你应该会看到 Open WebUI 的登录/注册页面。

方法二:使用纯 Docker 命令

如果你不想使用 Docker Compose,也可以直接使用 Docker 命令来运行 Open WebUI 容器。

1. 运行 Docker 命令: 打开终端,运行以下命令:

docker run -d --network=host \

   -v ./data:/app/backend/data \

   --name open-webui \

   -e OLLAMA_BASE_URL=http://localhost:11434 \

   --restart always \

   ghcr.io/open-webui/open-webui:main

解释一下命令:

  • docker run -d:以后台模式运行容器。

--network=host:使用主机网络模式。这意味着容器会直接使用主机的网络栈,可以更方便地访问主机上的 OLLAMA 服务。*注意:** 使用主机网络模式可能会有安全风险,适用于个人本地部署环境。如果你对网络安全有较高要求,或者希望容器拥有独立的网络,建议使用 Docker Compose 或其他网络模式,并确保 OLLAMA_BASE_URL 配置正确。

  • -v ./data:/app/backend/data:映射数据卷,与 Docker Compose 相同。

  • --name open-webui:指定容器名称。

  • -e OLLAMA_BASE_URL=http://localhost:11434:与 Docker Compose 相同,指定 OLLAMA 后端地址。使用主机网络模式时,可以直接使用 localhost 访问主机的 OLLAMA 服务。

  • --restart always:设置容器在退出时总是自动重启。

  • ghcr.io/open-webui/open-webui:main:指定使用的 Docker 镜像。

2. 验证部署和访问: 参考方法一的步骤 3 和 4 进行验证和访问。如果使用 --network=host 模式,Open WebUI 将直接监听主机的 8080 端口,你可以通过 http://localhost:8080 访问。

首次使用 Open WebUI

当你首次访问 Open WebUI 时,你需要进行注册。

1. 注册账户: 点击页面上的注册按钮,填写用户名、邮箱和密码来创建一个账户。请记住你的账户信息。

2. 登录: 使用你刚刚创建的账户信息登录。

登录成功后,你就会看到 Open WebUI 的主界面。

使用 Open WebUI 与 LLM 交互

1. 选择模型: 在界面的左侧或顶部,你会看到一个模型选择下拉菜单。这里会列出你在 OLLAMA 中已经拉取的所有模型。选择你想使用的模型。

2. 开始对话: 在底部的输入框中输入你的问题或提示,然后按下 Enter 键或点击发送按钮。

3. 等待回复: Open WebUI 会将你的输入发送给 OLLAMA 后端,并显示 LLM 生成的回复。

Open WebUI 的一些常用功能

  • 切换模型: 随时可以通过模型选择菜单切换到不同的 LLM 模型。

  • 管理模型: 在设置或管理页面,你可以查看已安装的模型信息,以及通过 OLLAMA 拉取新的模型。

  • 对话历史: Open WebUI 会保存你的对话历史,方便你回顾和继续之前的对话。

  • 配置参数: 部分模型和 Open WebUI 版本允许你配置一些模型参数,例如温度、top-p 等,以微调模型的输出风格。

  • 多用户支持: Open WebUI 支持多用户注册和使用,每个用户的数据都是独立的。

遇到的问题与解决方案

  • 无法连接到 OLLAMA:

    • 检查 OLLAMA 服务是否运行: 确保你的 OLLAMA 服务正在后台运行。

    • 检查 OLLAMA_BASE_URL 配置: 仔细核对你在 Docker 配置文件或命令中设置的 OLLAMA_BASE_URL 是否正确指向你的 OLLAMA 服务地址和端口 (默认为 11434)。

    • 网络问题: 确保容器和 OLLAMA 之间可以互相访问。如果使用 Docker Compose,确保 host.docker.internal 能够正确解析到主机。如果使用 Docker 命令,确保网络模式和 OLLAMA_BASE_URL 配置匹配。

    • 防火墙: 检查防火墙设置,确保 Open WebUI 容器可以访问 OLLAMA 端口。

  • Open WebUI 无法访问:

    • 检查容器是否运行: 使用 docker-compose ps 或 docker ps 命令查看 Open WebUI 容器的运行状态。

    • 检查端口映射: 确保 Docker 配置文件或命令中的端口映射正确。例如,如果你将主机端口 3000 映射到容器端口 8080,请访问 http://localhost:3000。

    • 防火墙: 检查主机防火墙,确保你访问的端口没有被阻止。

  • 模型加载失败或推理错误:

    • 检查模型是否已下载完整且可用: 在命令行中使用 ollama list 查看已下载的模型列表,并尝试在 OLLAMA 命令行中运行模型,看是否正常。

    • 硬件资源不足: 某些大型模型需要较强的硬件(特别是显卡)才能运行。如果你的设备性能不足,可能会导致加载失败或推理缓慢甚至错误。

  • 数据丢失: 如果没有 correctly 配置和映射数据卷 volumes),删除并重建容器可能会导致用户数据和配置丢失。确保你的 docker-compose.yaml 或 Docker 命令中包含了正确的数据卷映射。

总结

通过 Docker 部署 Open WebUI 是一个相对简单且高效的方式,能够让你快速搭建本地 AI 助手的前端界面,极大地提升与 OLLAMA 运行的本地 LLM 的交互体验。遵循本文的步骤,你应该能够顺利完成部署并开始享受个性化的本地 AI 服务。

现在,就开始你的本地 AI 探索之旅吧!如果你在部署过程中遇到任何问题,可以查阅 Open WebUI 的官方文档、GitHub 仓库 Issues 区,或者在相关的技术社区寻求帮助。

最后推荐一下我的网站:

  • 拥有超多模型,一键式使用!

https://open.master-jsx.top/