open-webui / open-webui
open-webui/open-webui
用户友好的AI界面,支持Ollama、OpenAI API等。
项目概览
项目概述
Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线运行。它支持多种 LLM 运行器,如 Ollama 和 OpenAI 兼容 API,并内置 RAG 推理引擎,是一个强大的 AI 部署解决方案。项目主要使用 Python 编写,提供 Web 界面,支持多种部署方式。
核心功能
- 无缝安装:支持 pip、uv、Docker、Kubernetes 等多种安装方式,并提供
:ollama和:cuda标签的容器镜像。 - 广泛模型与 API 集成:可连接任何 OpenAI 兼容 API 以及本地 Ollama 模型,支持 LMStudio、GroqCloud、Mistral、OpenRouter、vLLM 等。
- 细粒度 RBAC 与用户组:管理员可定义角色、组和权限,实现安全默认和个性化体验。
- 插件支持:通过 Filters、Actions、Pipes、Tools、Skills 扩展,支持 MCP、MCPO、OpenAPI 工具服务器。
- 模型与智能体:包装基础模型,添加自定义指令、工具和知识,构建专用智能体。
- 笔记与频道:提供笔记工作区,支持实时共享频道,团队与 AI 协作。
- 持久记忆:AI 跨对话记住用户事实,保持上下文。
- 实时工作流与消息流:实时查看 AI 构建和检查清单,消息排队自动发送。
- 日历与 AI 调度:内置个人和共享日历,支持重复事件、颜色编码、提醒,模型可通过函数调用管理日程。
- 自动化:定时运行提示词,结果在日历上显示。
- 响应式设计与 PWA:支持桌面、笔记本、移动端,提供渐进式 Web 应用体验。
- Markdown 与 LaTeX 支持:全面支持 Markdown 和 LaTeX。
- 语音/视频通话:集成多种语音转文本和文本转语音引擎。
- 持久化工件存储:内置键值存储 API,支持日志、追踪器等。
- 本地 RAG 集成:支持 9 种向量数据库和多种内容提取引擎,混合搜索和重排序。
- Web 搜索与浏览:支持多种搜索提供商,可将网页内容注入对话。
- 图像生成与编辑:支持 OpenAI DALL·E、Gemini、ComfyUI、AUTOMATIC1111 等引擎。
- 多模型对话:同时与多个模型并行对话。
- 使用分析与模型评估:管理员仪表盘跟踪消息量、token 消耗和成本,内置竞技场和 ELO 排行榜。
- 灵活数据库与存储:支持 SQLite(可选加密)或 PostgreSQL,文件可存储本地或 S3、GCS、Azure Blob。
- 高级向量数据库支持:支持 ChromaDB、PGVector、Qdrant、Milvus、Elasticsearch、OpenSearch、Pinecone、S3Vector、Oracle 23ai。
- 企业认证与供应:支持 LDAP/AD、SSO、SCIM 2.0。
- 云原生文件集成:原生支持 Google Drive 和 OneDrive/SharePoint 文件选择。
- 生产可观测性:内置 OpenTelemetry 支持。
- 水平扩展:基于 Redis 的会话管理和 WebSocket 支持多工作节点部署。
- 多语言支持:i18n 国际化。
- 持续更新:定期更新、修复和新功能。
- 透明安全流程:通过文档化的负责任披露流程处理安全报告。
适用与不适用场景
适用场景:
- 希望自托管 AI 聊天界面,完全离线运行。
- 需要连接多种 LLM 提供商(Ollama、OpenAI 兼容 API)的统一界面。
- 需要细粒度权限控制的企业内部 AI 平台。
- 需要 RAG、Web 搜索、图像生成等高级功能的团队。
- 需要水平扩展和高可用部署的生产环境。
不适用场景:
- 需要托管云服务的用户(Open WebUI 是自托管应用)。
- 需要内置商业支持 SLA 的用户(除非购买企业版)。
- 需要移动原生应用的用户(提供 PWA,但非原生)。
- 需要完全无代码配置的用户(需要一定技术知识)。
技术架构与依赖
- 语言:Python(后端)和 JavaScript/TypeScript(前端)。
- 框架:后端可能使用 FastAPI 或类似框架,前端可能使用 Svelte 或 React(仓库资料未提供具体框架)。
- 依赖:Ollama、OpenAI API、向量数据库(ChromaDB、PGVector 等)、Redis、SQLite/PostgreSQL、OpenTelemetry 等。
- 部署:支持 Docker、Kubernetes、pip、uv。
- 许可证:仓库显示 NOASSERTION,但 README 提到多许可证,包括 Open WebUI License 和先前贡献的许可证,详见 LICENSE 和 LICENSE_HISTORY 文件。
安装与快速开始
使用 pip 安装
确保使用 Python 3.11,然后运行:
pip install open-webui
open-webui serve
使用 Docker 快速开始
如果 Ollama 在本地计算机上:
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
如果 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
仅使用 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
使用捆绑 Ollama 支持:
- 带 GPU:
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:
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
注意:使用 Docker 时务必挂载 -v open-webui:/app/backend/data 以防数据丢失。
典型使用方法
- 连接模型:在设置中添加 Ollama 或 OpenAI 兼容 API 端点。
- 创建智能体:在模型管理中包装基础模型,添加指令、工具和知识。
- 使用 RAG:将文档加载到聊天中,或使用
#命令从库中拉取文档。 - Web 搜索:配置搜索提供商,在对话中注入搜索结果。
- 多模型对话:同时选择多个模型进行并行对话。
- 语音通话:启用语音/视频通话,配置语音转文本和文本转语音引擎。
- 自动化:创建定时任务,自动运行提示词。
- 管理用户:通过管理面板设置角色、组和权限。
配置与部署要点
- 环境变量:
OLLAMA_BASE_URL、OPENAI_API_KEY、HF_HUB_OFFLINE等。 - 数据库:默认 SQLite,可配置 PostgreSQL。
- 向量数据库:选择 9 种之一,如 ChromaDB、PGVector 等。
- 存储:本地文件或 S3、GCS、Azure Blob。
- 水平扩展:使用 Redis 进行会话管理,多节点部署。
- 安全:启用 RBAC,限制工具权限,遵循安全政策。
- 离线模式:设置
HF_HUB_OFFLINE=1防止下载模型。 - 更新:定期更新 Docker 镜像或 pip 包。
限制、风险与许可证
- 限制:需要技术知识进行部署和维护;某些功能可能需要额外配置或依赖。
- 风险:自托管应用需自行负责安全更新;插件执行用户代码可能带来安全风险,需谨慎授权。
- 许可证:仓库显示 NOASSERTION,但 README 提到多许可证,包括 Open WebUI License 和先前贡献的许可证,详见 LICENSE 和 LICENSE_HISTORY 文件。
官方链接
- GitHub 仓库:https://github.com/open-webui/open-webui
- 文档:https://docs.openwebui.com/
- Discord 社区:https://discord.gg/5rJgQTnV4s
- 最新版本:v0.11.0(发布于 2026-07-27)
信息来源和分析时间
- 信息来源:GitHub 仓库 README、SECURITY.md、最新发布信息。
- 分析时间:2026-07-27(基于最新发布信息)。