跳到主要内容
警告

本教程由社区贡献,不属于 Open WebUI 团队的支持范围。它仅作为如何根据您的特定用例自定义 Open WebUI 的演示。想贡献吗?请查阅贡献教程

在离线模式下运行 Open WebUI 🔌

如果您想在离线模式下运行 Open WebUI,您需要考虑您的安装方法并相应调整您所需的功能。在本指南中,我们将介绍实现与在线版本基本相似设置的不同方法。

离线模式意味着什么?

Open WebUI 的离线模式允许您在不需要活跃互联网连接的情况下运行应用程序。这使您可以为您的 LLM 和工具创建一个“气隙”环境(完全的“气隙”环境需要将实例与互联网隔离)。

信息

启用离线模式时禁用的功能

  • 自动版本更新检查
  • 从 Hugging Face Hub 下载嵌入模型
    • 如果您在激活 OFFLINE_MODE 之前未下载嵌入模型,任何 RAG、网页搜索和文档分析功能可能无法正常工作
  • UI 中的更新通知

仍可用的功能

  • 外部 LLM API 连接(OpenAI 等)
  • OAuth 认证提供商
  • 使用外部 API 进行网页搜索和 RAG

如何启用离线模式?

离线模式必须通过环境变量 OFFLINE_MODE 启用。根据您部署 Open WebUI 的方式应用此环境变量。

提示

请考虑您是否需要在部署开始时就让应用程序处于离线状态。如果您的用例不需要立即具备离线能力,请遵循方法二以便更轻松地进行设置。

方法一

一:语音转文本

本地 whisper 安装默认不包含模型。在这方面,如果您想使用外部模型/提供商,只能部分遵循指南。要使用本地 whisper 应用程序,您必须首先下载您选择的模型(例如 Huggingface - Systran)。

from faster_whisper import WhisperModel

faster_whisper_kwargs = {
"model_size_or_path": "Systran/faster-whisper-large-v3",
"device": "cuda", # set this to download the cuda adjusted model
"compute_type": "int8",
"download_root": "/path/of/your/choice"
}

WhisperModel(**faster_whisper_kwargs)

下载目录的内容必须复制到您的 Open WebUI 部署中的 /app/backend/data/cache/whisper/models/。通过环境变量直接声明您的 whisper 模型是合理的,例如:WHISPER_MODEL=Systran/faster-whisper-large-v3

一:文本转语音

默认的本地 Transformer 已经可以处理文本转语音功能。如果您偏好不同的方法,请遵循其中一个指南

一:嵌入模型

出于各种目的,您将需要一个嵌入模型(例如 RAG)。您首先必须下载您选择的此类模型(例如 Huggingface - sentence-transformers)。

from huggingface_hub import snapshot_download

snapshot_download(repo_id="sentence-transformers/all-MiniLM-L6-v2", cache_dir="/path/of/your/choice")

下载目录的内容必须复制到您的 Open WebUI 部署中的 /app/backend/data/cache/embedding/models/。通过环境变量直接声明您的嵌入模型是合理的,例如:RAG_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2

方法二

在设置期间使用互联网连接运行 Open WebUI

这是实现离线设置的最简单方法,几乎包含在线版本中的所有可用功能。仅应用您希望用于部署的功能。

二:语音转文本

请遵循指南

二:文本转语音

请遵循其中一个指南

二:嵌入模型

在您的 Open WebUI 安装中,导航到 管理设置 > 设置 > 文档,然后选择您想要使用的嵌入模型(例如 sentence-transformer/all-MiniLM-L6-v2)。选择后,点击旁边的下载按钮。


安装完所有所需功能后,根据您的 Open WebUI 部署类型设置环境变量 OFFLINE_MODE=True

旁注

如前所述,要实现 Open WebUI 的完全离线体验,您必须将您的实例与互联网断开。离线模式仅防止在没有互联网连接时 Open WebUI 内部出现错误。

如何断开您的实例取决于您。这里提供一个通过 docker-compose 的示例

services:
# requires a reverse-proxy
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
environment:
- OFFLINE_MODE=True
- RAG_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
- WHISPER_MODEL=Systran/faster-whisper-large-v3
volume:
- ./open-webui-data:/app/backend/data
- ./models/sentence-transformers/all-MiniLM-L6-v2:/app/backend/data/cache/embedding/models/
- ./models/Systran/faster-whisper-large-v3:/app/backend/data/cache/whisper/models/
networks:
- open-webui-internal

networks:
open-webui-internal:
name: open-webui-internal-network
driver: bridge
internal: true