⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/open-webui-ai-interface/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

本地跑大模型这件事,做的人越来越多。Ollama 把下载和运行模型变得很简单,但每次都在命令行里聊天终究不顺手。用一段时间之后,多数人都会搜到同一个东西,Open WebUI。

这篇就把它从头到尾聊一遍,从它是什么、能做什么,到具体怎么装上。

从 Ollama 的命令行里逃出来

Open WebUI 是一个开源、自托管的 AI 操作界面。

它最开始叫 Ollama WebUI,顾名思义就是给 Ollama 配的网页端。后来功能越加越多,名字也改了,现在早已不只是 Ollama 的前端,本地模型和各类云端服务可以同时接进来。

管理后台里的模型与知识库设置

项目由 Timothy Jaeryang Baek 发起,社区很活跃,Discord 里有数万名开发者,Docker 镜像累计拉取次数超过 2 亿。这个数字说明用的人确实不少。

暗色主题下的对话界面

核心特点一句话能说完,完全私有、离线可用、功能齐全。部署在自己的服务器或本机,数据不出门,没有账号限制,也没有每月 API 费用的上限。

仓库目前十五万多 Star,是这份榜单上 AI 界面类项目里最高的一个。

open-webui/open-webui 仓库首页

比 ChatGPT 多出来的那几排入口

打开之后第一印象很接近 ChatGPT,细看会发现功能入口多不少。左边是对话历史,右边是聊天区,顶部可以切换模型,操作习惯和主流 AI 聊天产品差不多,不太需要适应期。

亮色主题下的默认界面

主题可以在亮色和暗色之间自由切换,也支持自己调。

暗色主题的另一种呈现

响应式做得不错,手机上用同样流畅,还支持 PWA,可以把网页版装到手机桌面,用起来接近原生应用。

自定义主题的实际效果

能同时伺候本地的和云端的模型

这是它最实用的地方之一。本地的 Ollama 模型和远端的 OpenAI 接口可以同时配置进来,在同一个界面里切换。聊到一半觉得这个模型不够用,换一个接着聊,不用另开窗口。

还有一个多模型对比功能,把同一个问题同时发给两个模型,左右排列看回答。评估不同模型在特定任务上的表现,这个功能效率很高。

能接的服务覆盖得很全,Ollama、OpenAI、Anthropic、Gemini、GroqCloud、LMStudio、OpenRouter 这些主流选项都在。

把文档变成它答得出来的东西

PDF、Word、TXT、CSV 都能上传,攒成一个私有知识库。对话时用井号命令引用知识库内容,模型就会基于你的文档来回答,不靠印象编。

底层支持 9 种向量数据库,ChromaDB、PGVector、Qdrant、Milvus 这些都在列,按自己的情况选。文档解析也准备了多个引擎,Tika、Docling、Mistral 各有各的适用场景。

搜索增强同样做了,能接入 SearXNG、Google、Bing、DuckDuckGo、Perplexity 等十五个以上的搜索提供方。本地模型接上网络搜索之后,时效性这个短板基本就补上了。

声音、画面,它都接得住

语音转文字支持本地 Whisper、OpenAI、Deepgram、Azure;文字转语音支持 Azure、ElevenLabs、OpenAI 等。按着麦克风说话,模型用语音答回来,中间不用切到别的工具。

再往前一步是视频通话模式,摄像头对着你,模型靠视觉能力分析画面并跟你互动。

图片生成也集成进来了,DALL-E、Gemini、ComfyUI、AUTOMATIC1111 都能用,不必再单独开一个工具,在聊天窗口里直接出图。

自己搭一个 GPTs

这个功能在 Open WebUI 里叫 Model Builder,逻辑和 GPTs 差不多。选一个基础模型,写好 System Prompt,绑定特定知识库,再挂几个工具,就能存成一个专用助手。

比如做一个代码审查助手,把你们团队的编码规范写进去;或者做一个合同分析助手,上传公司常用的合同模板。之后每次用都不用重新配置,打开就用。

动态变量也支持,像 、 这类占位符会自动替换成当前用户名和日期,写 System Prompt 时省事不少。

给团队用,权限要能切得动

团队部署这块它做得挺完整。

权限管理基于 RBAC,能细化到每个模型的使用权限。研发团队用代码模型,财务团队只能用通用对话模型,互相不干扰。

用户认证支持 LDAP 与 Active Directory、SSO 单点登录、SCIM 2.0 自动同步,公司有现成账号体系的话接进来不麻烦。

Channels 功能有点像 Slack,可以建频道,团队成员在同一个频道里和 AI 协作,用 @模型名 召唤不同模型参与讨论,所有人看到的是同一条时间线。

管理员面板带用量统计,能看到每个用户调用了哪些模型、消耗了多少 Token,内部做成本核算有依据。

能不能私有化落地,往往就在这些不性感的功能上见分晓。

长出工具的地方

这部分是它和一般聊天界面拉开差距的地方。

Python 工具可以直接在界面里写函数,让模型具备查数据库、调外部接口、做计算的能力。不用单独搭服务,内置了代码编辑器,写完绑到助手上就能用。

Pipelines 是一套插件框架,用来自定义消息的过滤、路由和转换逻辑。社区已经有现成例子,比如拿 Langfuse 做用量监控、拿 LibreTranslate 做实时翻译。

MCP 是原生支持的,理论上可以接入数以千计的第三方服务和数据源。这个协议由 Anthropic 推出,生态已经不小,Open WebUI 在早期就跟进了。

装起来就是一条命令的事

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

跑起来之后打开 http://localhost:3000 就能用。

想把 Ollama 和 Open WebUI 打包在一起,用带 ollama 标签的镜像更省心,一个容器全搞定。有显卡的加 –gpus=all,纯 CPU 的去掉这个参数即可。

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

只用云端接口、不在本地跑模型的话,环境变量里塞一个 key 就行。

docker run -d -p 3000:8080 \
-e OPENAI_API_KEY=你的key \
-v open-webui:/app/backend/data \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:main

如果 Ollama 装在另一台机器上,把 OLLAMA_BASE_URL 换成那台机器的地址即可。

不想用 Docker 也可以走 pip,前提是 Python 版本为 3.11。装完开服务,访问 http://localhost:8080。

pip install open-webui
open-webui serve

镜像有几个变体,main 是标准版,cuda 带 NVIDIA 显卡支持,main-slim 体积更小、首次启动时再下载 Whisper 这类模型。生产环境建议锁死版本号,避免更新带进不兼容的变化。另外有个容易踩的坑,命令里的数据卷挂载不能省,数据库就靠它落地,删掉的话重启一次数据就没了。

它适合谁,不适合谁

个人开发者想在本机跑模型、又不想每次敲命令行的,它给了一个顺手的界面,还能同时管几个模型。隐私有保障,开销基本只剩电费。

小团队不想买 ChatGPT Team 或 Claude for Work 的,可以自己搭一套,权限管理和用量统计都齐。

企业内网部署这类有合规要求的场景更是它的主场,完全离线运行,LDAP、SSO、SCIM 的集成也到位,对接公司现有账号体系不费劲。

AI 工具研究者想测不同模型在相同任务上的表现,多模型对比功能用起来很高效。

有一条得提前说清楚。它的许可证既不叫 MIT 也不叫 Apache,是一份自定义的 Open WebUI License,里面专门有一条品牌条款,除了一定期限内最终用户不超过五十人的部署,或者拿到作者的书面许可,否则不允许改动、移除、遮挡或替换 Open WebUI 的品牌标识。想拿它改个名字对外提供服务的话,先看这一条。

这个数字是怎么攒出来的

Open WebUI 在功能覆盖上已经很全面,你能想到的 AI 交互需求,它基本都有对应模块。但功能多也意味着初次配置要花点时间摸清楚,好在文档写得还行、社区也活跃。

十五万多 Star 在开源工具里算是相当大的数字,说明它经受住了不少真实用户的检验,更新也很频繁,隔一阵就有新功能进来。

如果你正在用 Ollama 跑本地模型,或者在找一个能私有化部署的 AI 界面,它值得试试。花半小时配好,之后大概率会一直用下去。

Open WebUI 的 Star 增长曲线

仓库在 https://github.com/open-webui/open-webui
文档在 https://docs.openwebui.com

文章目录
  1. 1. 从 Ollama 的命令行里逃出来
  2. 2. 比 ChatGPT 多出来的那几排入口
  3. 3. 能同时伺候本地的和云端的模型
  4. 4. 把文档变成它答得出来的东西
  5. 5. 声音、画面,它都接得住
  6. 6. 自己搭一个 GPTs
  7. 7. 给团队用,权限要能切得动
  8. 8. 长出工具的地方
  9. 9. 装起来就是一条命令的事
  10. 10. 它适合谁,不适合谁
  11. 11. 这个数字是怎么攒出来的