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 rundocker 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 是界面和平台,不是模型本身。回答质量、上下文长度、速度、图片能力、工具调用效果,主要取决于你接入的模型和推理服务。

参考