跳到主要内容
AI教程

安装并使用 Open WebUI 搭建自托管 AI

学习使用 pip 或 Docker 安装 Open WebUI,连接 Ollama 或 OpenAI 兼容 API,并开始与模型对话。

安装并使用 Open WebUI 搭建自托管 AI

什么是 Open WebUI?

Open WebUI 是一个可扩展的自托管 AI 平台,配置本地资源后可完全离线运行。它为本地 Ollama 模型、OpenAI 兼容 API,以及用于检索增强生成(通常称为 RAG)的内置推理引擎提供基于浏览器的界面。

你可以将其用作个人 AI 工作空间,也可以为团队部署。除对话功能外,该平台还包括笔记、共享频道、持久记忆、日历、定时自动化、图像生成集成、语音和视频通话、分析、模型评估以及细粒度访问控制。

Open WebUI Demo

主要功能

  • 灵活的模型连接: 可同时使用本地 Ollama 模型和 OpenAI 兼容服务,例如 LMStudio、GroqCloud、Mistral、OpenRouter 和 vLLM。

  • 本地 RAG: 可将文档添加到对话中,或使用 # 命令从知识库检索文件。该平台支持混合搜索、重排序、多种提取引擎和九种向量数据库。

  • 模型与智能体: 可将基础模型与自定义指令、知识、工具、动态变量,以及用户或群组访问规则封装在一起。

  • 可扩展性: 可添加 Filters、Actions、Pipes、Tools 和 Skills,或连接 MCP、MCPO 及 OpenAPI 工具服务器。

  • 协作: 可使用笔记、实时频道、主题帖、回应、置顶、共享日历和 AI 辅助排程。

  • 多模态: 可配置语音转文本、文本转语音、语音和视频通话,以及图像生成或编辑引擎。

  • 管理: 可管理角色、群组、权限、身份验证、使用情况分析、模型评估、存储和可观测性。

  • 灵活部署: 可通过 pip、uv、Docker、Docker Compose、Kubernetes、Kustomize 或 Helm 安装。

  • 响应式界面: 可在桌面设备和移动设备上使用 Open WebUI,也可以将其安装为渐进式 Web 应用(PWA)。

选择安装方式

如需快速进行本地测试,请使用 pip 或 Docker。pip 可直接通过 Python 提供 Open WebUI 服务,而 Docker 可提供隔离部署,并可轻松选择标准镜像、支持 CUDA 的镜像或内置 Ollama 的镜像。

重要: 每条 Docker 命令都应挂载 open-webui:/app/backend/data。这个持久卷可在容器被替换或删除时保护数据库及其他应用数据。

方式一:使用 Python pip 安装

按照项目所述的 pip 安装方式,Open WebUI 需要 Python 3.11。继续操作前,请确认你的环境使用了正确的 Python 版本。

  1. 安装软件包:

    pip install open-webui
  2. 启动服务器:

    open-webui serve
  3. 在浏览器中打开 http://localhost:8080

方式二:使用 Docker 运行 Open WebUI

连接主机上的 Ollama

如果 Ollama 已在运行 Docker 的同一台计算机上运行,请启动标准 Open WebUI 镜像并添加主机映射,使容器能够访问主机:

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

容器启动后,访问 http://localhost:3000

连接另一台服务器上的 Ollama

OLLAMA_BASE_URL 设置为远程 Ollama 服务的地址:

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

https://example.com 替换为实际的 Ollama 服务器 URL。

启用 NVIDIA GPU 支持

Open WebUI 提供带 CUDA 标签的镜像。在 Linux 或 WSL 上运行该镜像前,请先安装 NVIDIA CUDA 容器工具包:

docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

仅使用 OpenAI API

如果不需要 Ollama,可将 OpenAI API 密钥传递给标准镜像:

docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

your_secret_key 替换为相应的凭据。Open WebUI 也可以连接其他 OpenAI 兼容 API,项目文档中提供了各服务提供商对应的配置说明。

在一个容器中运行 Open WebUI 和 Ollama

:ollama 镜像内置了 Open WebUI 和 Ollama。它使用一个卷存储 Ollama 模型,另一个卷存储 Open WebUI 应用数据。

使用 GPU 运行内置 Ollama

docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

仅使用 CPU 运行内置 Ollama

docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

容器启动后,打开 http://localhost:3000

基本用法

  1. 打开界面: 使用 pip 安装时访问端口 8080,使用上述标准 Docker 命令时访问端口 3000

  2. 使用可用模型: 选择通过已配置的 Ollama 或 OpenAI 兼容连接提供的模型并开始对话。

  3. 编写内容更丰富的提示词: 回答支持 Markdown 和 LaTeX,因此该界面适合生成结构化说明、代码、表格和数学公式。

  4. 跨设备继续使用: 响应式界面可在桌面设备和移动设备上运行,渐进式 Web 应用支持还可提供类似原生应用的体验。

通过 RAG 使用文档

可将文档直接添加到对话中,或使用 # 命令从资料库中检索文档。Open WebUI 可以提取内容并建立索引、检索相关段落,然后将其注入模型上下文。其 RAG 技术栈支持 BM25 与向量混合搜索、重排序和完整上下文模式。

对于更大规模的部署,支持的向量数据库包括 ChromaDB、PGVector、Qdrant、Milvus、Elasticsearch、OpenSearch、Pinecone、S3Vector 和 Oracle 23ai。

将网站内容引入对话

使用 # 命令并在其后添加 URL,即可将网站内容导入对话。还可以配置 Open WebUI,使模型在需要时获取网页内容。

比较多个模型

多模型对话允许你同时与多个模型交互。当你想比较推理能力、写作风格或不同服务提供商的表现时,这项功能非常实用。管理员还可以使用内置竞技场、A/B 测试和基于 ELO 的排行榜来评估模型。

高级配置技巧

创建专用模型和智能体

将基础模型与自定义指令、工具和知识相结合,即可创建专用智能体。动态变量以及按用户或群组设置的访问控制,可让你针对不同团队定制智能体。还可以从 Open WebUI Community 导入社区预设。

扩展平台

Open WebUI 支持 Filters、Actions、Pipes、Tools 和 Skills。可通过 MCP、MCPO 和 OpenAPI 工具服务器连接外部服务。这些扩展点可用于实现自定义集成、审批流程、速率限制和额外的数据连接。

规划团队和企业部署

对于多用户环境,可使用角色、群组和权限控制访问。Open WebUI 支持 LDAP 和 Active Directory 集成、基于可信请求头和 OAuth 的单点登录,以及面向 Okta、Azure AD 和 Google Workspace 等身份提供商的 SCIM 2.0 用户配置。

存储可使用 SQLite(可选择启用加密)或 PostgreSQL。文件可存储在本地,也可存储到 S3、Google Cloud Storage 或 Azure Blob Storage。基于 Redis 的会话和 WebSocket 支持可在负载均衡器后方实现多工作进程及多节点部署,而 OpenTelemetry 可提供追踪、指标和日志。

完全离线运行

在离线环境中运行 Open WebUI 时,请将 HF_HUB_OFFLINE 设置为 1,以防止系统尝试从互联网下载模型:

export HF_HUB_OFFLINE=1

离线部署仍要求环境中已具备所有必要的模型、依赖项和本地服务。

谨慎尝试开发镜像

:dev 镜像包含不稳定的前沿变更,可能存在错误或功能不完整。只有在你愿意承担相关风险时才应使用:

docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --add-host=host.docker.internal:host-gateway --restart always ghcr.io/open-webui/open-webui:dev

排查 Ollama 连接错误

一个常见的 Docker 问题是,Open WebUI 无法从容器内部访问位于 127.0.0.1:11434host.docker.internal:11434 的 Ollama。在受支持的系统上,文档中提供的一种解决方法是使用主机网络:

docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main

使用此命令后,应通过 http://localhost:8080 访问 Open WebUI,而不是使用端口 3000

如果仍然无法连接,请确认 Ollama 正在运行、检查其地址,并查阅 Open WebUI 故障排除文档。Docker 环境可能需要额外的网络配置。

维护与安全

  • 替换或升级部署时,请遵循官方更新指南

  • 升级期间请保持挂载持久化 Docker 卷,以免丢失应用数据。

  • 请审查项目许可证及其许可证历史,因为该代码库包含采用多种许可证的组件,其中当前采用 Open WebUI 许可证的代码还包含品牌标识要求。

  • 如发现疑似漏洞,请通过项目的 GitHub 负责任披露计划秘密报告,不要在公开社区渠道中发布。

总结

Open WebUI 提供了一个灵活的界面,可通过你控制的基础设施运行本地和托管 AI 模型。你可以先使用 Python 3.11 或持久化 Docker 部署,连接 Ollama 或 OpenAI 兼容 API,然后逐步扩展到 RAG、智能体、插件、协作、分析和可扩展的生产服务。如需了解更多部署选项,请参阅官方入门文档