Open WebUI 是一个自托管的 AI Web 界面,可以把 Ollama、本地模型、OpenAI-compatible API 和多种工具能力整合到一个类似 ChatGPT 的界面里。
它最适合的场景是:你已经在本地或服务器上跑了大模型,想要一个易用的 Web UI 来管理模型、聊天记录、知识库、用户权限和工具扩展。
它解决什么问题
直接使用模型 API 或命令行工具虽然灵活,但日常使用不够顺手。Open WebUI 提供了一个完整的前端和后台管理能力,让模型服务变成一个可长期使用的 AI 工作台。
你可以用它来:
- 连接本地 Ollama 模型。
- 连接 OpenAI、OpenRouter、LM Studio、Groq、Mistral 等 OpenAI-compatible API。
- 管理聊天记录、模型列表、提示词和知识库。
- 给团队成员创建账号,并控制模型和功能权限。
- 上传文档做 RAG 问答。
- 配置 Web Search、工具调用、函数和 Pipeline。
- 在桌面和手机浏览器里使用同一个 AI 入口。
核心功能
多模型聊天
Open WebUI 支持同时接入多个模型后端。你可以在同一个界面里切换模型,也可以做多模型对比。
常见组合:
- 本地模型:Ollama、llama.cpp、vLLM。
- 云端模型:OpenAI、Anthropic。
- 中转或聚合服务:OpenRouter、Groq、Mistral、LM Studio 等 OpenAI-compatible 服务。
如果你的后端兼容 OpenAI API,一般都可以通过自定义 API Base URL 接入。
Ollama 集成
Open WebUI 和 Ollama 的组合很常见。Ollama 负责在本地运行模型,Open WebUI 负责提供聊天界面、用户管理和扩展能力。
典型流程是:
ollama pull llama3.1
ollama run llama3.1
然后启动 Open WebUI,通过浏览器访问界面。Open WebUI 通常会尝试连接本机或指定地址的 Ollama 服务。
RAG 和知识库
Open WebUI 支持上传文档,让模型基于资料回答问题。这类能力通常称为 RAG,也就是 Retrieval Augmented Generation。
适合放进去的内容包括:
- 产品文档。
- 项目 README。
- API 文档。
- 运维手册。
- 个人笔记。
- 团队知识库。
RAG 的价值不是让模型“记住一切”,而是让它在回答前先检索相关资料,再基于资料组织答案。
Web Search 和网页内容
Open WebUI 可以配置 Web Search,把搜索结果注入到聊天上下文里。这样模型可以结合外部网页信息回答问题。
这类功能适合:
- 查询近期信息。
- 总结网页内容。
- 做资料收集。
- 对比多个来源。
需要注意的是,搜索能力依赖你配置的搜索提供方和网络环境。
工具、函数和 Pipelines
Open WebUI 不只是聊天界面,也提供扩展机制。你可以通过工具、函数、OpenAPI、MCP 或 Pipelines 给模型增加能力。
例如:
- 调用内部 API。
- 查询数据库。
- 触发自动化脚本。
- 对输入输出做过滤和路由。
- 接入自定义 RAG 逻辑。
如果只是个人使用,可以先不用碰这些高级能力。等聊天、模型和知识库都跑顺了,再逐步扩展。
用户和权限
Open WebUI 支持多用户、角色和权限控制。对于团队使用,这比单纯跑一个本地聊天页面更重要。
管理员可以控制:
- 哪些用户可以登录。
- 哪些模型对哪些用户可见。
- 谁可以管理模型。
- 谁可以使用特定工具或功能。
个人本地使用时,这些能力不一定马上用到;部署到服务器或给团队使用时,就很有价值。
使用 Docker 快速启动
官方推荐 Docker 作为多数用户的快速启动方式。
拉取镜像:
docker pull ghcr.io/open-webui/open-webui:main
启动容器:
docker run -d \
-p 3000:8080 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
打开浏览器:
http://localhost:3000
这里最重要的是数据卷:
-v open-webui:/app/backend/data
它用来保存 Open WebUI 的配置、账号、聊天记录和数据。不要随便删除这个 volume,否则本地数据会丢失。
和 Ollama 一起使用
如果 Ollama 已经在宿主机运行,可以先确认服务正常:
ollama list
ollama run llama3.1
macOS 上 Docker 容器访问宿主机服务时,常用 host.docker.internal:
docker run -d \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
如果你想把 Ollama 和 Open WebUI 放在同一个容器里,也可以使用带 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
这种方式简单,但本地已有 Ollama 环境时,我更倾向于分开管理:Ollama 负责模型运行,Open WebUI 负责界面和管理。
Docker Compose 示例
如果长期使用,建议写成 docker-compose.yml:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
ports:
- "3000:8080"
environment:
OLLAMA_BASE_URL: http://host.docker.internal:11434
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
启动:
docker compose up -d
查看日志:
docker logs -f open-webui
停止:
docker compose down
更新
手动更新一般是重新拉镜像并重建容器:
docker pull ghcr.io/open-webui/open-webui:main
docker rm -f open-webui
然后用原来的 docker run 或 docker compose up -d 启动。
如果是生产或团队环境,不建议长期使用 :main 这种浮动标签。更稳妥的方式是固定版本号,确认升级说明后再更新。
适合谁
Open WebUI 适合:
- 想在本地用 Ollama,但不想只靠命令行的人。
- 想把多个模型供应商放进同一个聊天界面的人。
- 想做个人或团队知识库问答的人。
- 想自托管 AI 工具,减少对单一 SaaS 依赖的人。
- 想给团队成员提供统一 AI 入口的人。
不太适合:
- 只偶尔问几句话,不想维护任何本地服务的人。
- 完全不想接触 Docker、模型 API 或基础配置的人。
- 对企业级稳定性有强要求,但没有部署、备份和升级流程的人。
注意事项
数据备份
Open WebUI 的重要数据在 volume 里。长期使用前要考虑备份:
docker volume ls
如果部署在服务器上,建议定期备份 /app/backend/data 对应的数据卷。
账号安全
如果只在本机使用,风险较小。如果暴露到公网,必须考虑:
- HTTPS。
- 强密码。
- 注册开关。
- 管理员账号保护。
- 反向代理和访问控制。
不要把一个默认配置的 Open WebUI 直接裸露到公网。
模型能力取决于后端
Open WebUI 是界面和平台,不是模型本身。回答质量、上下文长度、速度、图片能力、工具调用效果,主要取决于你接入的模型和推理服务。