Open WebUI
自托管的 LLM 聊天前端,支持 Ollama 与 OpenAI 兼容后端。
已经跑起本地模型(或有一堆 API key),想给团队、客户或自己一个像样的对话界面,而不想从零写前端。
Open WebUI 解决的是一个很具体的问题:模型跑起来了,但总不能让人对着命令行或者 curl 用。它提供一个接近 ChatGPT 的完整界面——多会话、历史记录、模型切换、参数调节、对话分享,后端可以同时接 Ollama 和任何 OpenAI 兼容服务,一个界面里混着用本地模型和云模型。
它自带一套 RAG:上传文档后会切片、向量化、存进内置库,聊天时可以挂载这些「知识」作为上下文。这一层开箱即用,省掉了自己拼 embedding + 向量库 + 检索链的功夫。质量取决于两件事——选的 embedding 模型和切片策略,中文场景别用默认的英文小模型,换成 bge-m3 这类多语言模型效果差很多。
多用户和权限是它的另一个强项。可以开注册、分角色、看用量,也可以设成只有管理员能改模型配置。一个人做小团队交付时,这套现成的账号体系能省掉不少事。另外它支持自定义 Functions 和 Pipelines,可以用 Python 插一段自己的逻辑(比如接入内部检索、加一层审计)而不用改主程序。
代价是它偏重。默认安装带向量库和一堆 Python 依赖,内存占用不小,小机器上跑会有点吃力。同时它迭代很快,版本之间配置结构偶尔变动,生产环境建议锁版本、升级前先备份数据卷。
能拿它做什么
- 内部 AI 助手:团队共用一个入口,模型配置由管理员统一管
- 知识库问答:上传产品文档、合同模板,让同事直接问
- 客户交付:给客户的私有化部署配一个可用的界面
- 多模型对比:同一个问题同时问本地和云端,看差距
怎么用起来
- 最快:docker run -d -p 3000:8080 -v open-webui:/app/backend/data --add-host=host.docker.internal:host-gateway ghcr.io/open-webui/open-webui:main
- 打开 http://localhost:3000,第一个注册的账号即管理员
- Settings → Connections 里填 Ollama 地址 http://host.docker.internal:11434,或填 OpenAI 兼容的 base_url + key
- 中文知识库:Settings → Documents 把 embedding 模型换成多语言模型(如 bge-m3)
官网在 openwebui.com ,源码在 GitHub 仓库 ↗。
坑在哪
自带的 RAG 是「能用」级别,不是「好用」级别:切片策略默认比较粗,中文长文档容易答不准,要出效果得自己调 embedding 模型和 chunk 参数。它也不适合直接当多租户 SaaS 卖给客户——没有资源隔离和计费。另外升级频繁,自定义 Pipelines 偶尔会在大版本后失效,生产环境务必锁镜像版本。
想给团队或客户一个像样的对话界面,不用自己写前端。