mcpField
O
OPENWEBUI

OPENWEBUI

github.com/open-webui聊天应用157.0k3 天前更新

关于 OPENWEBUI

Open WebUI 是用于本地及云端模型的可自托管界面,支持 Ollama 和兼容 OpenAI 的 API。它将聊天与文档检索、模型工具、团队管理及扩展能力结合,适用于个人和组织。

主要功能

  1. 01连接 Ollama 和兼容 API
  2. 02本地 RAG 与网页搜索
  3. 03通过工具、技能和插件扩展
  4. 04用自定义指令构建模型与 Agent
  5. 05管理用户、群组和权限
  6. 06支持语音、图像和多模型

适用场景

  1. 01与本地或托管模型聊天
  2. 02从文档集合检索答案
  3. 03创建含自定义工具和知识的 Agent
  4. 04管理团队的模型访问权限

MCP 相关

Open WebUI 可通过 MCP、MCPO 和 OpenAPI 工具服务连接外部服务,以扩展工具能力。

详细介绍

Open WebUI 👋

GitHub stars GitHub forks GitHub watchers GitHub repo size GitHub language count GitHub top language GitHub last commit Discord README 配图

Open WebUI 是 AI 的家园,是一个可自托管的 AI 平台,可扩展、功能丰富、易于使用,并且支持 完全离线运行。它支持 Ollama 和 兼容 OpenAI 的 API,为本地和云端模型提供强大且不受提供商限制的界面。

热衷于开源 AI?加入我们的团队 →

Open WebUI Demo

提示


在寻找 企业版方案? – 立即联系我们的销售团队!

如需了解更多信息,请查看 Open WebUI 文档。

Open WebUI 的主要功能 ⭐

  • 🚀 轻松安装:通过 pip、uv、Docker 或 Kubernetes(kubectl、kustomize 或 helm)无缝安装;容器部署还提供带有 :ollama 和 :cuda 标签的镜像。

  • 🤝 广泛的模型与 API 集成:连接任意兼容 OpenAI 的 API,以及本地 Ollama 模型。将 API URL 指向 LMStudio、GroqCloud、Mistral、OpenRouter、vLLM 等,自由组合不同提供商。

  • 🔐 精细的 RBAC 与用户组:管理员可定义详细的角色、用户组和权限,为每位用户提供恰到好处的访问权限。默认安全,并可为不同用户组定制体验。

  • 🧩 插件支持:使用 Filters、Actions、Pipes、Tools 和 Skills 扩展 Open WebUI。通过 MCP、MCPO 和 OpenAPI 工具服务连接外部服务。构建自定义集成、速率限制、审批流程、数据连接等。

  • 🤖 模型与 Agent:为任意基础模型添加自定义指令、工具和知识,构建专用 Agent。支持动态变量、按用户或用户组设置访问控制,以及通过 Open WebUI Community 导入社区预设。

  • ⚡ 借助 Open Terminal 执行 Agent 任务:为 Agent 提供终端和文件系统,以执行多步骤任务。让它们分析数据、运行脚本、修复错误,并直接在聊天中生成文件。借助 Terminals(企业版) 扩展至团队使用,提供按用户隔离的环境、资源限制和自动生命周期管理。

  • 📝 笔记:用于存放对话之外内容的专用工作区。使用富文本编辑器起草内容,借助 AI 改写选中文本,并将笔记附加到任意聊天以注入完整上下文。

  • 📢 频道:实时共享空间,团队与 AI 模型可在同一时间线上协作。为模型添加标签,让它们起草或点评内容,并支持话题串、表情回应、置顶和访问控制。

  • 🧠 持久化记忆:AI 会在不同对话中记住与你有关的信息,将上下文从一次聊天延续到下一次。

  • ✅ 实时工作流与消息流:实时查看 AI 创建并逐项完成清单。AI 仍在回复时也可以排队发送消息;AI 准备就绪后,消息会自动发送。

  • 📅 日历与 AI 日程安排:内置个人和共享日历,支持月/周/日视图、重复事件、颜色标记、参与者和提醒。模型通过原生函数调用,以对话方式管理你的日程。

  • ⏱️ 自动化:按周期安排提示词运行,运行任务会显示在日历上,每次运行完成后都会链接回相应的聊天。

  • 📱 响应式设计与 PWA:在台式机、笔记本电脑和移动设备上均可流畅使用;Progressive Web App 带来原生应用般的体验,并支持在 localhost 上离线访问。

  • ✒️🔢 完整支持 Markdown 和 LaTeX:全面支持 Markdown 和 LaTeX,带来更丰富的交互体验。

  • 🎤📹 免手动操作的语音/视频通话:集成语音和视频通话,支持多种语音转文本服务提供商(Local Whisper、OpenAI、Deepgram、Azure)和文本转语音引擎(Azure、ElevenLabs、OpenAI、Transformers、WebAPI)。

  • 💾 持久化工件存储:内置键值存储 API,可用于存储工件,从而支持日志、追踪器、排行榜和协作工具,并提供个人和共享数据范围。

  • 📚 本地 RAG 集成:基于 9 种向量数据库和多种内容提取引擎(Tika、Docling、Document Intelligence、Mistral OCR、PaddleOCR-vl、external loaders)的检索增强生成。支持混合搜索(BM25 + 向量),并提供重排序和完整上下文模式。使用 # 命令将文档加载到聊天中,或从资料库中调取文档。

  • 🔍 用于 RAG 的网页搜索:通过数十种服务提供商搜索网页,包括 SearXNG、Google PSE、Brave Search、Kagi、Mojeek、Tavily、Perplexity、Firecrawl、serpstack、serper、Serply、DuckDuckGo、SearchApi、SerpApi、Bing、Jina、Exa、Sougou、Azure AI Search 和 Ollama Cloud,并将结果直接注入对话。

  • 🌐 网页浏览功能:使用 # 命令后接 URL,将网站内容调入聊天;也可以在需要时让模型自行获取网页内容。

  • 🎨 图像生成与编辑:使用多种引擎创建和编辑图像,包括 OpenAI DALL·E、Gemini、ComfyUI(本地)和 AUTOMATIC1111(本地),同时支持图像生成和基于提示词的编辑。

  • ⚙️ 多模型对话:同时调用多个模型,发挥各自的优势并行工作,以获得尽可能出色的回复。

  • 📊 使用分析与模型评估:管理仪表板会跟踪不同用户和模型的消息量、Token 消耗量及成本。通过内置竞技场、A/B 测试和基于 ELO 的排行榜评估模型。

  • 🗄️ 灵活的数据库与存储:可选择 SQLite(可选加密)或 PostgreSQL,并将文件存储在本地、S3、Google Cloud Storage 或 Azure Blob Storage 上。

  • 🧬 高级向量数据库支持:可从 9 种向量数据库中选择:ChromaDB、PGVector、Qdrant、Milvus、Elasticsearch、OpenSearch、Pinecone、S3Vector 和 Oracle 23ai。

  • 🪪 企业级身份验证与配置:全面集成 LDAP/Active Directory,支持通过可信请求头和 OAuth 提供商实现 SSO,并支持 SCIM 2.0 自动配置身份提供商,如 Okta、Azure AD 和 Google Workspace。

  • ☁️ 云原生文件集成:原生支持 Google Drive 和 OneDrive/SharePoint 文件选择,可从企业云存储无缝导入文档。

  • 🔭 生产环境可观测性:内置 OpenTelemetry 支持,用于跟踪、指标和日志,并可接入现有监控技术栈。

  • ⚖️ 水平扩展能力:基于 Redis 的会话管理和 WebSocket 支持,可在负载均衡器后部署多个工作进程和多个节点。

  • 🌐🌍 多语言支持:借助 i18n 支持,以你偏好的语言使用 Open WebUI。我们正在积极寻找贡献者,以扩展语言覆盖范围!

  • 🌟 持续更新:我们致力于通过定期更新、修复和新功能来改进 Open WebUI。

  • 🛡️ 透明的安全流程:安全报告会经过分类处理、修复,并通过有据可查的负责任披露流程作为公开公告发布。请参阅我们的安全政策。

想进一步了解 Open WebUI 的功能?请查看我们的 Open WebUI 文档,获取全面的概览!

Open WebUI 生态系统 🌐

Open WebUI 是核心,周围还有配套应用和基础设施,可扩展 AI 的能力、可访问范围以及运行方式:

  • 💻 Open WebUI Computer (open-webui/computer):一款独立、以移动端优先的电脑和编码 Agent,可在你拥有的设备上运行。通过浏览器标签页即可使用文件、终端和 git,也可以通过手机访问。可将其作为模型接入 Open WebUI,也可通过 Telegram、WhatsApp 等平台访问。

  • ⚡ Open Terminal 和 Terminals (Enterprise) (open-webui/open-terminal & open-webui/terminals):一种可自托管的计算环境,可接入 Open WebUI,让 AI 能在聊天中编写代码、运行代码、读取输出、修复错误并不断迭代。Terminals 为每位用户提供隔离的容器,配备独立凭据、资源限制和网络规则。支持在 Docker 或 Kubernetes 上自动管理生命周期。

  • 🔄 oikb (open-webui/oikb):从 45 个以上的来源(GitHub、Confluence、ServiceNow、Salesforce、Jira、Slack、SharePoint、Notion 等)为知识库导入内容,让团队现有工具持续保持同步。

  • 🖥️ 原生桌面应用 (open-webui/desktop):在 macOS、Windows 和 Linux 上以原生应用的形式运行 Open WebUI。提供系统级 Spotlight 聊天栏,支持截屏、按键通话语音,以及通过内置的 llama.cpp 引擎进行可选的完全本地推理。

想进一步了解?请查看我们的 Open WebUI 文档,获取更多详情!


我们由衷感谢赞助者慷慨支持。他们的捐助帮助我们维护和改进项目,确保能够持续为社区提供优质成果。谢谢!

如何安装 🚀

通过 Python pip 安装 🐍

Open WebUI 可使用 Python 包安装程序 pip 安装。继续之前,请确保使用 Python 3.12,以避免兼容性问题。

  1. 安装 Open WebUI: 打开终端并运行以下命令来安装 Open WebUI:

    pip install open-webui
    
  2. 运行 Open WebUI: 安装完成后,可以执行以下命令启动 Open WebUI:

    open-webui serve
    

这将启动 Open WebUI 服务,你可以通过 http://localhost:8080 访问它。

使用 Docker 快速入门 🐳

说明


请注意,在某些 Docker 环境中,可能需要额外配置。如果遇到连接问题,请参阅我们的详细指南 Open WebUI 文档。

警告

使用 Docker 安装 Open WebUI 时,请务必在 Docker 命令中加入 -v open-webui:/app/backend/data。这一步至关重要,可确保正确挂载数据库并防止数据丢失。

提示


如果希望使用包含 Ollama 或支持 CUDA 加速的 Open WebUI,我们建议使用官方的 :cuda 或 :ollama 标签镜像。若要启用 CUDA,必须在 Linux/WSL 系统上安装 Nvidia CUDA container toolkit。

使用默认配置安装
  • 如果 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 在另一台服务器上,请使用此命令:

    若要连接另一台服务器上的 Ollama,请将 OLLAMA_BASE_URL 改为该服务器的 URL:

    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
    
  • 若要在支持 Nvidia GPU 的情况下运行 Open WebUI,请使用此命令:

    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 而安装
  • 如果你只使用 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 支持的 Open WebUI

此安装方式使用一个同时捆绑 Open WebUI 和 Ollama 的容器镜像,只需一条命令即可简化设置。请根据硬件配置选择合适的命令:

  • 支持 GPU: 运行以下命令以使用 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: 如果不使用 GPU,请改用此命令:

    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
    

这两条命令都可以轻松内置安装 Open WebUI 和 Ollama,让你快速完成设置并启动所有组件。

安装完成后,可通过 http://localhost:3000 访问 Open WebUI。祝你使用愉快!😄

其他安装方式

我们还提供多种安装方式,包括非 Docker 原生安装、Docker Compose、Kustomize 和 Helm。请访问 Open WebUI 文档或加入我们的 Discord 社区,获取全面的指导。

故障排除

遇到连接问题?请参阅 Open WebUI 文档。如需进一步帮助并加入活跃的社区,请访问 Open WebUI Discord。

Open WebUI:服务器连接错误

如果遇到连接问题,通常是因为 WebUI Docker 容器无法在容器内连接到 127.0.0.1:11434(host.docker.internal:11434)上的 Ollama 服务器。请在 Docker 命令中使用 --network=host 标志来解决此问题。请注意,端口会从 3000 变为 8080,因此链接为:http://localhost:8080。

Docker 命令示例:

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
将 Docker 安装更新到最新版本

请查看 Open WebUI 文档中的更新指南。

使用 Dev 分支 🌙

警告

:dev 分支包含最新的不稳定功能和更改。请自行承担使用风险,因为其中可能存在错误或尚未完成的功能。

如果你想试用最新的前沿功能,并且能够接受偶尔出现的不稳定情况,可以像这样使用 :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
离线模式

如果在离线环境中运行 Open WebUI,可以将 HF_HUB_OFFLINE 环境变量设为 1,以阻止尝试从互联网下载模型。

export HF_HUB_OFFLINE=1

接下来做什么? 🌟

在 Open WebUI 文档中了解路线图上的后续功能。

许可证 📜

本项目包含采用多种许可证授权的代码。当前代码库包含采用 Open WebUI License 授权的组件,并附带保留“Open WebUI”品牌标识的额外要求;此外,还包含此前根据各自原始许可证提供的贡献。有关许可证变更记录及代码各部分适用条款的详细信息,请参阅 LICENSE_HISTORY。有关完整且最新的许可详情,请查看 LICENSE 和 LICENSE_HISTORY 文件。

支持 💬

如果您有任何问题、建议或需要帮助,请提交 issue,或加入我们的 Open WebUI Discord 社区与我们交流!🤝

安全 🛡️

如果您认为发现了安全漏洞,或发现了不应公开披露的内容,请通过 GitHub 上的负责任披露计划与我们保密联系。我们仅通过 GitHub 接收报告,不接受通过其他平台提交的报告。感谢您帮助我们保障 Open WebUI 的安全!

Star 历史

Star 历史图表

由 Timothy Jaeryang Baek 创建——让我们携手让 Open WebUI 变得更加出色!💪

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。