GitHub: open-webui/open-webui
Stars: 142,000+ | Language: Python (35.3%), Svelte (32.4%), JavaScript (24.6%), TypeScript (4.9%)
License: Open WebUI License(保留 “Open WebUI” 品牌标识)
最新版本: v0.9.6 (2026-06-01) | Commits: 16,810+ | Releases: 163
官网: openwebui.com | 文档: docs.openwebui.com
目录
项目速览
Open WebUI 是目前 GitHub 上最受欢迎的自托管 AI 界面平台,截至 2026 年 6 月已获得超过 142,000 颗 Star,是 AI 开源领域 Star 数排名前三的项目之一。它提供了一个功能完整的 Web 界面,让用户可以通过浏览器与本地或云端的大语言模型进行交互,设计目标为「完全离线可运行」。
Open WebUI 的核心竞争力在于其「全栈一体化」架构:它不仅是一个聊天界面,更是一套完整的 AI 工作平台,集成了对话管理、RAG 知识库、模型管理、工具调用、多模态交互(语音/视频/图像)、用户权限管理、插件扩展等能力。支持 Docker 一行命令部署,也支持 Kubernetes、pip install 和桌面应用安装。
项目采用 Svelte 构建前端、Python 构建后端,使用 Tailwind CSS + Vite 作为前端工程栈。2026 年 6 月发布的 v0.9.6 版本是其第 163 个正式发布,项目自开源以来保持着极高频率的迭代节奏(平均每周一个版本)。
MCP 集成:原生支持 + mcpo 代理双通道
Open WebUI 对 MCP 的支持通过两条路径实现:
- 原生 Streamable HTTP: 平台的 Extensibility 体系直接支持 Native Streamable HTTP for Model Context Protocol servers,可直连 MCP 服务端。
- mcpo 代理(推荐):由 Open WebUI 团队开发的独立工具 open-webui/mcpo,将任意 MCP 服务器包装为 RESTful OpenAPI 接口,Open WebUI 通过其 OpenAPI Servers 机制自动发现和使用这些工具。
功能概述
对话与交互
Open WebUI 提供企业级的对话体验:
- 多模型并行对话: 同时运行两个模型,并列比较响应
- 文件与图片上传: 附加文档、图片、代码供 AI 分析
- Web 搜索: AI 实时搜索网络并引用来源
- 代码执行: 在浏览器中直接运行 Python,或通过 Open Terminal 执行任意命令
- 消息队列: AI 回复时可继续输入,消息自动排队发送
- Memory: AI 跨对话记住关于用户的事实
- 文件管理: 文件夹、标签、置顶,按工作方式组织对话
- 语音与视频: Speech-to-Text + Text-to-Speech,支持免提语音/视频通话
- 图像生成: 集成 DALL-E、Gemini、ComfyUI(本地)、AUTOMATIC1111(本地)
- 自动化: 定时调度提示词自动执行
- 任务管理: 模型维护结构化的多步骤任务列表
Knowledge 与 RAG
Open WebUI 内置了从文档摄取到检索增强生成的完整管道:
向量数据库: 官方维护 ChromaDB 和 PGVector,社区支持 Qdrant、Milvus、Elasticsearch、OpenSearch、Pinecone、S3Vector、Oracle 23ai 共 9 种选择。
混合检索: BM25(关键词匹配)+ 向量搜索(语义匹配)+ Cross-Encoder 重排序,实现检索精度最大化。
5 种内容提取引擎: Apache Tika、Docling、Azure Document Intelligence、Mistral OCR、PaddleOCR-vl,覆盖 PDF、Word、Excel、图片等格式。
智能检索模式:
- Agentic Retrieval: 模型自主决定何时搜索和读取文档,无需手动触发
- Full Context Mode: 注入完整文档(不切片),适合对精度要求极高的场景
- Knowledge Base Sync: 通过 oikb 将知识库与文件夹、Git 仓库、Wiki 或云存储桶保持同步
Web 搜索: 支持 15+ 搜索提供商:SearXNG、Google PSE、Brave、Kagi、Tavily、Perplexity、DuckDuckGo、Bing、Jina、Exa 等。
Web 浏览: 使用 # 命令 + URL 直接在对话中加载网页内容。
模型与 Agent
- Model Presets: 将系统提示词、工具、知识库和参数打包为一个预设
- 动态变量:
{{ USER_NAME }}、{{ CURRENT_DATE }}等自动注入到提示词 - 绑定工具: 按模型强制启用特定工具
- 访问控制: 按用户/组限制模型的使用权限
- 原生函数调用: Python 代码编辑器内置在工具工作区中,模型可直接调用用户定义的函数
Notes(笔记系统)
- 富文本编辑器: Markdown + 富文本,浮动格式工具栏
- AI Enhance: 选中文本原地改写或优化
- 上下文注入: 将笔记附加到对话中,不经过向量搜索切片的无损上下文供给
- Agentic 访问: 模型可自主搜索、阅读和更新笔记
Channels(频道系统)
- @model 标记: 在频道对话中按需召唤任意 AI 模型
- Threads & Reactions: 回复线程、置顶、表情反应
- 访问控制: 公开、私有、群组、私信四种频道类型
- AI 频道感知: 模型自主搜索和综合频道的上下文
Open Terminal
- 命令执行: 执行真实 shell 命令并返回输出
- 文件浏览器: 侧边栏浏览、上传、下载和编辑文件
- 网站预览: 在 Open WebUI 内实时预览 Web 项目
- 隔离可选: Docker 容器隔离或裸金属直接运行
可扩展性
Open WebUI 提供了多层次的可扩展体系:
| 扩展方式 | 说明 |
|---|---|
| Tools & Functions | 纯 Python 函数(BYOF — Bring Your Own Function),内置代码编辑器,运行时注入到对话中 |
| Pipelines | 模块化插件框架,拦截、转换和路由消息。可部署为独立服务,通过 OpenAI 兼容 URL 连接 |
| MCP Servers | 原生 Streamable HTTP 支持,直连 MCP 兼容的工具服务器 |
| OpenAPI Servers | 自动发现任何 OpenAPI 兼容端点的工具 |
| Skills | Markdown 指令集,教模型如何处理特定任务 |
| Prompts | 斜杠命令模板,带类型化输入变量和版本管理 |
认证与权限
- RBAC: 角色、组、按资源的细粒度权限
- SSO/OIDC/LDAP: 与任何身份提供商联邦认证
- SCIM 2.0: 自动化的用户和组配置
- API Keys: 程序化访问,适合脚本、机器人、外部集成
生产就绪基础设施
- 数据库: SQLite(默认,可选加密)+ PostgreSQL
- 对象存储: S3、Google Cloud Storage、Azure Blob Storage
- 可观测性: OpenTelemetry 全链路追踪、指标和日志
- 水平扩展: Redis 支持的会话管理和多 Worker WebSocket
- Docker/K8s: 一行 Docker 命令或 Helm Chart 即可部署
适用场景
个人 AI 助手
最简单的使用场景:在自己的机器上部署 Open WebUI,连接本地 Ollama 或云端 API,获得类似 ChatGPT Plus 的完整体验,但数据完全属于自己。支持离线模式(HF_HUB_OFFLINE=1),无需互联网连接。
团队 AI 工作平台
通过 RBAC 权限系统、Channels 频道和 Notes 笔记功能,团队可以在一个平台上共享 AI 资源、协作对话、积累团队知识库。支持 LDAP/AD/SSO 企业认证和 SCIM 2.0 自动配置。
RAG 知识库问答系统
借助内置的 9 种向量数据库支持和 5 种文档提取引擎,快速搭建基于私有文档的问答系统。Hybrid Search(BM25 + 向量 + Rerank)确保检索质量,Full Context Mode 保证机密文档不被切分。
MCP 工具集成中心
通过原生 MCP Streamable HTTP 支持或 mcpo 代理,Open WebUI 可以成为组织内所有 MCP 工具的统一入口。将 Memory、Fetch、Git、Sequential Thinking 等 MCP 服务器接入后,用户在一个聊天界面中即可使用所有工具。
模型评测与对比
利用 Model Presets 和 Many Models Conversations 功能,同时对比多个模型对同一问题的回答。内置的 Model Arena、A/B Testing 和 ELO 排行榜为正式评测提供基础设施。
AI 应用开发原型的交互层
对于正在开发 AI Agent 或工具链的团队,Open WebUI 可充当交互界面层,通过 Functions/Pipelines/MCP 三种方式将开发中的工具快速暴露给测试用户,无需自建前端。
快速上手
Docker 部署(推荐)
默认安装(连接本地 Ollama):
docker run -d -p 3000:8080 \ |
Nvidia GPU 支持:
docker run -d -p 3000:8080 \ |
捆绑 Ollama 一键部署(CPU):
docker run -d -p 3000:8080 \ |
连接远程 Ollama:
docker run -d -p 3000:8080 \ |
仅使用 OpenAI API:
docker run -d -p 3000:8080 \ |
pip 部署
pip install open-webui |
通过 mcpo 接入 MCP 工具
步骤一:启动 mcpo 代理
# 启动 Memory MCP 服务器,暴露为 OpenAPI 接口 |
步骤二:在 Open WebUI 中添加 OpenAPI 服务器
进入 Admin Panel > Settings > Connections > OpenAPI Servers,添加:
http://localhost:8000 |
mcpo 会自动生成该服务器的 OpenAPI 文档(位于 http://localhost:8000/docs),Open WebUI 将自动发现所有 MCP 工具。
步骤三:多服务器配置(可选)
使用 JSON 配置文件同时挂载多个 MCP 服务器:
{ |
uvx mcpo --port 8000 --config /path/to/mcp_config.json --api-key "my-secret-key" |
每个服务器会获得独立的路由前缀(如 /memory、/fetch、/time),Open WebUI 将分别发现它们的工具。
源码架构
整体架构
open-webui/ |
技术栈总览
| 层级 | 技术 | 占比 | 说明 |
|---|---|---|---|
| 前端框架 | Svelte | 32.4% | 编译时框架,运行时体积小 |
| 后端 | Python (FastAPI) | 35.3% | 高性能异步 Web 框架 |
| 样式 | Tailwind CSS | 2.4% | 原子化 CSS |
| 构建 | Vite | — | 下一代前端构建工具 |
| 国际化 | i18next | — | 多语言支持 |
| 容器化 | Docker + Compose | — | 8 个 compose 文件覆盖各种场景 |
后端设计
后端基于 FastAPI 构建,核心特征:
- 异步优先: 全面使用 async/await 模式,支持高并发 WebSocket 连接
- 模块化路由:
routers/目录下按功能域拆分路由(chat、models、auth、knowledge、tools 等) - 多数据库支持: 通过存储抽象层同时支持 SQLite 和 PostgreSQL
- 多对象存储: S3/GCS/Azure Blob 通过统一接口接入
- WebSocket 多 Worker: Redis Pub/Sub 作为消息总线,支持水平扩展下的实时通信
前端设计
前端使用 Svelte + Vite:
- Svelte 组件化:
src/lib/下的组件库构建了整个 UI - TypeScript 增强: 关键业务逻辑使用 TypeScript(4.9%)
- PWA 支持: 完整的离线缓存策略,可在移动端安装为原生应用
- 响应式设计: Tailwind CSS 确保桌面、平板、手机三端适配
可扩展性架构
Open WebUI 的三层扩展体系:
- Functions(函数层): 最简单的扩展方式,在 Web UI 中直接编写 Python 函数,代码编辑器内置在平台中
- Pipelines(管道层): 独立的 Python 服务(open-webui/pipelines),作为 OpenAI 兼容的中间件部署,可以在请求到达模型之前/之后拦截和修改消息
- MCP/OpenAPI(协议层): 通过标准协议接入外部工具服务器,实现跨平台的工具复用
实操 Demo
Demo 1: 构建 RAG 知识库问答系统
步骤一:部署 Open WebUI
docker run -d -p 3000:8080 \ |
步骤二:配置文档知识库
进入 Workspace > Knowledge > Create Knowledge Base,上传技术文档(PDF、Markdown、代码文件等)。Open WebUI 会自动:
- 使用 Tika/Docling 提取文本内容
- 使用嵌入模型生成向量
- 存储到默认的 ChromaDB 中
步骤三:对话中使用知识库
在对话中通过 # 命令选择知识库,或在 Model Preset 中将知识库绑定到特定模型。提问时模型会先检索相关文档,再基于检索结果生成回答。
用户: #my-knowledge-base 这个系统的认证流程是怎样的? |
Demo 2: 通过 mcpo 接入 MCP Memory 服务
步骤一:启动 mcpo + Memory Server
uvx mcpo --port 8000 --api-key "demo-key" -- \ |
访问 http://localhost:8000/docs 确认 Swagger UI 中显示所有 9 个 Memory 工具。
步骤二:在 Open WebUI 中配置
Admin Panel > Settings > Connections > OpenAPI Servers > Add:
- URL:
http://localhost:8000 - API Key:
demo-key
步骤三:在对话中验证
用户: 我叫李华,在 ByteDance 做前端工程师,喜欢用 TypeScript。 |
Demo 3: 使用 Pipelines 实现自定义功能
Pipelines 是 Open WebUI 最强大的扩展机制。下面展示一个「敏感词过滤」Pipeline:
""" |
部署 Pipeline 服务后,在 Open WebUI 中将模型的 OpenAI API URL 指向 Pipeline 地址即可生效。
同类对比
| 维度 | Open WebUI | LibreChat | LobeChat | Anything LLM |
|---|---|---|---|---|
| 前端框架 | Svelte | React | React/Next.js | React |
| 后端 | Python (FastAPI) | Node.js | Node.js/Next.js | Node.js |
| Stars | 142k | 23k | 65k | 34k |
| RAG 能力 | 9 向量库 + 5 提取引擎 + Hybrid Search | 基础 RAG | 有限 RAG | 基础 RAG |
| MCP 集成 | 原生 + mcpo 代理 | 无 | 无 | 无 |
| 语音/视频 | 原生支持 | 基础 TTS | TTS 支持 | 无 |
| 权限管理 | RBAC + LDAP/SSO/SCIM | 基础权限 | 基础权限 | 多用户 |
| Pipelines | 成熟插件框架 | 有限 | 插件系统 | 自定义 Agent |
| 企业功能 | OTel、Redis 集群、K8s | 有限 | 有限 | 有限 |
| 定位 | 全栈 AI 平台 | ChatGPT 替代 | ChatGPT 替代 | 文档问答 |
参考资源
- GitHub 仓库: open-webui/open-webui
- 官方文档: docs.openwebui.com
- mcpo 代理: open-webui/mcpo — MCP-to-OpenAPI 代理,桥接 MCP 工具到 Open WebUI
- Pipelines 框架: open-webui/pipelines
- Open WebUI 社区: openwebui.com
- Docker Hub: ghcr.io/open-webui/open-webui
- MCP Python SDK: modelcontextprotocol/python-sdk
- MCP 官方 Servers: modelcontextprotocol/servers


