Ollama + Open WebUI:给本地大模型装一个类似 ChatGPT 的网页界面
前言
前面几篇文章,我们已经把 Ollama 的基础用法基本走完了:
-
认识 Ollama;
-
在 Windows 上安装 Ollama;
-
理解显卡、显存和模型大小;
-
学会模型下载、删除和管理;
-
通过 API 调用本地模型;
-
用 Ollama 做一个简单知识库问答系统。
到这里,Ollama 已经不只是一个命令行工具了。
它可以跑模型,可以提供本地 API,也可以接入自己的 Python 或网页项目。
但是有一个问题很明显:
终端聊天并不适合所有人。
每次都打开 PowerShell,然后输入:
ollama run qwen2.5:7b
虽然能用,但体验还是比较像“开发者工具”,不像正常的 AI 聊天产品。
如果我们想要一个类似 ChatGPT 的网页界面,可以选择 Open WebUI。
这一篇文章就来记录:如何用 Open WebUI 给 Ollama 装一个本地网页聊天界面,让自己的本地大模型用起来更像一个完整产品。
一、为什么需要 Open WebUI?
Ollama 本身已经能运行模型,但它默认主要通过命令行和 API 使用。
比如终端聊天:
ollama run qwen2.5:7b
或者 API 调用:
http://localhost:11434/api/generate
这些方式适合开发和测试,但如果日常使用,就会有几个不方便的地方。
1. 终端聊天体验一般
终端可以用,但不够直观。
比如:
1. 不方便管理历史对话;
2. 不方便切换模型;
3. 不方便复制和整理回答;
4. 不适合给普通用户使用;
5. 没有 ChatGPT 那种完整聊天界面。
2. API 更适合程序,不适合人直接使用
API 很适合 Python、JavaScript、网页项目调用。
但普通用户不可能每次都写 curl 或 requests。
所以我们需要一个界面层。
3. 本地模型也需要一个“前端”
可以这样理解:
Ollama:负责运行模型
Open WebUI:负责提供网页界面
两者配合后,使用体验就会变成:
浏览器打开网页
↓
选择本地模型
↓
输入问题
↓
Open WebUI 把问题发给 Ollama
↓
Ollama 调用本地模型回答
↓
回答显示在网页里
这样,本地大模型就不再只是命令行工具,而是变成了一个真正可以日常使用的 AI 聊天系统。
二、Open WebUI 是什么?
Open WebUI 可以理解为一个开源的 AI 聊天网页界面。
它不是大模型本身,而是一个前端和管理界面。
它可以连接 Ollama,也可以连接一些 OpenAI 兼容接口。
简单说:
Ollama 提供模型能力;
Open WebUI 提供网页交互体验。
Open WebUI 的作用包括:
1. 提供类似 ChatGPT 的聊天界面;
2. 支持选择不同模型;
3. 支持历史对话;
4. 支持用户管理;
5. 支持知识库和文件相关能力;
6. 支持连接 Ollama 本地模型;
7. 支持连接 OpenAI 兼容 API。
所以如果你觉得 Ollama 终端不好用,Open WebUI 是一个很自然的补充。
三、整体架构怎么理解?
安装 Open WebUI 后,整体结构大概是:
浏览器
↓
Open WebUI
↓
Ollama API
↓
本地大模型
换成具体地址就是:
浏览器访问:
http://localhost:3000
Open WebUI 连接:
http://host.docker.internal:11434 或 http://localhost:11434
Ollama 默认 API:
http://localhost:11434
这里最容易混的是 localhost。
如果 Open WebUI 直接安装在本机,访问 Ollama 的 localhost:11434 比较容易理解。
但如果 Open WebUI 跑在 Docker 容器里,容器内部的 localhost 指的是容器自己,不一定是宿主机。
所以 Docker 方式下经常会用:
host.docker.internal
来访问宿主机上的 Ollama。
这个点非常重要。
很多人 Open WebUI 装好了,但模型列表出不来,问题就出在这里。
四、安装前准备
这篇以 Windows 用户常见环境为例。
建议先准备:
1. 已经安装 Ollama;
2. 已经下载至少一个模型;
3. 已经安装 Docker Desktop;
4. 电脑有足够硬盘空间;
5. 本地 3000 和 11434 端口没有被占用。
先确认 Ollama 正常:
ollama --version
确认本地有模型:
ollama list
如果没有模型,可以先下载一个:
ollama pull qwen2.5:7b
或者先用小模型测试:
ollama pull llama3.2:3b
确认 Ollama API 正常:
curl http://localhost:11434/api/tags
如果这个命令能返回模型列表,说明 Ollama 本地服务正常。
五、使用 Docker 安装 Open WebUI
打开 PowerShell 或 Windows Terminal,执行下面命令:
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
这个命令比较长,我们拆开解释。
1. 后台运行容器
-d
表示容器在后台运行。
2. 端口映射
-p 3000:8080
Open WebUI 容器内部使用 8080 端口。
我们把它映射到本机的 3000 端口。
所以安装完成后,浏览器访问:
http://localhost:3000
3. 让容器能访问宿主机
--add-host=host.docker.internal:host-gateway
这个参数的作用是让容器可以通过 host.docker.internal 访问宿主机。
因为 Ollama 通常运行在宿主机上,而 Open WebUI 跑在 Docker 容器里。
4. 保存 Open WebUI 数据
-v open-webui:/app/backend/data
这个非常重要。
它会把 Open WebUI 的数据保存到 Docker volume 里。
包括账号、设置、聊天记录等。
如果不挂载数据卷,容器删除后数据可能会丢失。
5. 容器名称
--name open-webui
给容器起名叫 open-webui,后面停止、重启、查看日志会方便很多。
6. 自动重启
--restart always
表示 Docker 启动时自动启动 Open WebUI。
六、打开 Open WebUI
命令执行完成后,等待一会儿。
然后打开浏览器:
http://localhost:3000
第一次打开时,Open WebUI 可能会要求创建账号。
通常第一个注册的账号会成为管理员账号。
这个账号是本地 Open WebUI 的账号,不是 Ollama 账号,也不是 OpenAI 账号。
创建完成后,就可以进入 WebUI 界面。
七、连接 Ollama 模型
正常情况下,如果 Open WebUI 能正确连接到 Ollama,页面里应该能看到本地模型列表。
例如:
qwen2.5:7b
llama3.2:3b
qwen2.5-coder:7b
选择一个模型,然后输入问题测试:
请用一句话解释什么是 Ollama。
如果模型正常回答,说明 Open WebUI 已经成功连接到 Ollama。
这时候你就拥有了一个本地版 AI 聊天网页。
八、模型不显示怎么办?
这是最常见的问题之一。
如果 Open WebUI 打开了,但模型列表为空,可以按下面顺序排查。
1. 先确认 Ollama 本地有模型
运行:
ollama list
如果没有模型,先下载:
ollama pull qwen2.5:7b
2. 确认 Ollama API 正常
运行:
curl http://localhost:11434/api/tags
如果这里没有返回模型列表,说明 Ollama 服务本身有问题。
先解决 Ollama,再看 Open WebUI。
3. 检查 Docker 容器是否运行
运行:
docker ps
看看有没有 open-webui 这个容器。
如果没有,说明容器没有正常运行。
可以查看所有容器:
docker ps -a
4. 查看 Open WebUI 日志
运行:
docker logs open-webui
如果里面有连接 Ollama 失败的信息,就说明 Open WebUI 没有连上 Ollama。
5. 检查 Ollama 地址
如果 Open WebUI 跑在 Docker 里,它访问宿主机 Ollama 时,通常需要使用:
http://host.docker.internal:11434
而不是:
http://localhost:11434
因为容器里的 localhost 指的是容器自己,不是你的 Windows 主机。
如果页面里可以设置 Ollama 地址,可以检查是否填成了正确地址。
九、常用 Docker 管理命令
安装 Open WebUI 后,经常会用到几个 Docker 命令。
1. 查看正在运行的容器
docker ps
2. 查看所有容器
docker ps -a
3. 停止 Open WebUI
docker stop open-webui
4. 启动 Open WebUI
docker start open-webui
5. 重启 Open WebUI
docker restart open-webui
6. 查看日志
docker logs open-webui
如果想持续查看日志,可以用:
docker logs -f open-webui
7. 删除容器
docker rm -f open-webui
注意:
删除容器不一定等于删除数据。
因为前面我们用了 volume 保存数据。
8. 删除 Open WebUI 数据卷
如果你想彻底删除 Open WebUI 数据,可以执行:
docker volume rm open-webui
这个操作会删除聊天记录、账号和设置。
如果只是重装,不建议随便删数据卷。
十、如何更新 Open WebUI?
如果后面想更新 Open WebUI,可以按下面流程:
1. 停止并删除旧容器
docker stop open-webui
docker rm open-webui
2. 拉取最新镜像
docker pull ghcr.io/open-webui/open-webui:main
3. 用原来的命令重新启动
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
因为数据保存在:
open-webui
这个 volume 里,所以只要不删除 volume,账号和聊天记录一般可以保留。
十一、如果不想单独安装 Ollama,可以用集成版吗?
可以。
Open WebUI 也提供了包含 Ollama 的镜像。
如果你想让 Open WebUI 和 Ollama 都在同一个容器方案里运行,可以使用类似命令:
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
如果要尝试 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
不过对 Windows 新手来说,我更推荐先使用这种结构:
Ollama 安装在 Windows 本机
Open WebUI 跑在 Docker
Open WebUI 连接 Windows 本机的 Ollama
因为你前面几篇文章已经把 Ollama 本机安装跑通了。
如果突然换成容器里的 Ollama,模型存储位置、GPU 支持、网络连接都会多一层复杂度。
十二、Open WebUI 能做什么?
Open WebUI 不只是一个聊天框。
它相比终端最大的价值是让本地模型变得更像完整产品。
1. 更舒服的聊天界面
可以像正常 AI 网页一样输入、复制、查看历史。
相比终端,体验会自然很多。
2. 模型切换更方便
如果本地有多个模型,可以在界面中切换。
比如:
qwen2.5:7b:中文问答
qwen2.5-coder:7b:代码任务
llama3.2:3b:轻量测试
不用每次都手动输入 ollama run。
3. 历史对话更好管理
终端聊天退出后,历史管理不太方便。
Open WebUI 可以更直观地管理不同对话。
4. 更适合给别人使用
如果你想让同学、朋友、家人体验你的本地 AI,让他们打开网页比让他们打开命令行更现实。
5. 适合做本地 AI 工作台
如果后面继续接知识库、工具调用、文件问答,Open WebUI 可以作为一个本地 AI 工作台。
十三、Open WebUI 和自己写网页有什么区别?
第五篇里,我们已经写过一个简单 HTML 页面调用 Ollama API。
那为什么还要用 Open WebUI?
可以这样理解:
自己写网页
优点:
1. 完全可控;
2. 可以按自己的项目定制;
3. 适合学习 API 原理;
4. 适合嵌入自己的产品。
缺点:
1. 功能要自己写;
2. 历史记录要自己做;
3. 模型切换要自己做;
4. 用户系统要自己做;
5. 文件上传、知识库等功能都要自己实现。
Open WebUI
优点:
1. 开箱即用;
2. 界面完整;
3. 功能丰富;
4. 支持 Ollama;
5. 适合日常使用;
6. 适合快速搭建本地 AI 环境。
缺点:
1. 自定义程度不如自己写;
2. 需要 Docker 或额外安装;
3. 功能多,刚开始可能有点复杂;
4. 遇到连接问题需要懂一点容器网络。
所以它们不是谁替代谁。
更合理的关系是:
学习 API 原理:自己写网页
日常使用本地模型:Open WebUI
做正式项目:根据需求选择
十四、常见问题整理
问题 1:打开 localhost:3000 没反应
先检查容器是否运行:
docker ps
如果没有 open-webui,查看所有容器:
docker ps -a
再查看日志:
docker logs open-webui
问题 2:端口 3000 被占用
如果 3000 已经被别的软件占用,可以换成 3001:
docker run -d -p 3001: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:3001
注意,如果已经创建过同名容器,需要先删除旧容器:
docker rm -f open-webui
问题 3:Open WebUI 里看不到 Ollama 模型
按顺序检查:
1. ollama list 是否有模型;
2. curl http://localhost:11434/api/tags 是否正常;
3. docker ps 是否有 open-webui;
4. docker logs open-webui 是否报错;
5. Ollama 地址是否应该写 host.docker.internal:11434。
问题 4:模型回答很慢
这通常不是 Open WebUI 的问题,而是本地模型和硬件的问题。
可能原因:
1. 模型太大;
2. 显存不足;
3. 第一次加载模型;
4. 上下文太长;
5. 后台软件占用显存。
可以尝试:
1. 换小模型;
2. 先用 3B 或 7B 测试;
3. 关闭占用显卡的软件;
4. 减少上下文;
5. 用 ollama ps 查看模型状态。
问题 5:Docker Desktop 太占资源
Docker 本身会占用一定系统资源。
如果电脑配置一般,可以考虑:
1. 不用时停止 Open WebUI 容器;
2. 不用时退出 Docker Desktop;
3. 只在需要 WebUI 时启动;
4. 继续用 Ollama 命令行或 API 轻量使用。
停止容器:
docker stop open-webui
十五、什么时候适合用 Open WebUI?
我觉得下面几种情况很适合:
1. 想把 Ollama 当日常 AI 聊天工具;
2. 不想每次都用命令行;
3. 想要类似 ChatGPT 的网页体验;
4. 想管理多个本地模型;
5. 想给别人演示本地大模型;
6. 想搭建本地 AI 工作台;
7. 想继续研究知识库、工具调用和多模型管理。
但如果你只是写代码测试 API,或者做自己的产品后端,Open WebUI 不一定是必须的。
它更像是一个成熟的本地 AI 使用界面,而不是替代 API 开发。
十六、本篇总结
这一篇主要讲了如何用 Open WebUI 给 Ollama 装一个网页界面。
核心关系是:
Ollama:负责运行本地模型;
Open WebUI:负责提供网页聊天界面;
Docker:负责运行 Open WebUI 容器。
安装完成后,整体流程是:
浏览器
↓
Open WebUI
↓
Ollama API
↓
本地大模型
↓
返回回答
最关键的命令是:
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
如果模型不显示,重点检查:
1. Ollama 是否运行;
2. 本地是否有模型;
3. API 是否能访问;
4. Docker 容器是否正常;
5. Open WebUI 是否连到了正确的 Ollama 地址。
到这里,我们的本地大模型体验就完整了很多。
前面几篇解决的是“如何运行模型”和“如何开发调用模型”。
这一篇解决的是“如何更舒服地使用模型”。
下一篇可以继续写一个更偏开发者的方向:
Ollama + VS Code / Continue:打造一个本地 AI 代码助手。
更多推荐




所有评论(0)