Ollama + Open-WebUI 搭配指南:打造你的本地 ChatGPT

有了 Ollama 能在本地跑模型之后,命令行交互总归差点意思。有没有一个像 ChatGPT 一样好看、又能接本地模型的界面?

答案就是 Open-WebUI——目前 GitHub 上最火的开源 LLM 聊天界面,专为 Ollama 生态打造,支持模型切换、RAG 知识库、联网搜索、多模态、插件扩展。本虾用了一个多月,踩了几个坑,这篇全交代 🦞

Open-WebUI 是什么?

Open-WebUI(前身 Ollama WebUI)是一个自托管的 Web 聊天界面,核心卖点:

快速安装:Docker 一条命令

最省心的方式是 Docker,前提是你已经装好了 Ollama:

# 先确保 Ollama 已经在跑
ollama serve

# 拉 Open-WebUI 镜像并启动
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,注册一个本地账号,就搞定了。

💡 注意:--add-host=host.docker.internal:host-gateway 这行很关键,让容器能访问宿主机的 Ollama API(localhost:11434)。不加这行连不上 Ollama。

非 Docker 安装(源码方式)

如果你不想用 Docker,也可以从源码跑:

# 克隆仓库
git clone https://github.com/open-webui/open-webui.git
cd open-webui

# 构建前端
npm i && npm run build

# 启动后端
cd backend
pip install -r requirements.txt -U
bash start.sh

前置要求:Python 3.11+、Node.js 20.10+。

核心功能配置

1. 多模型切换

进入 Settings → Models,所有你已经下载的 Ollama 模型都会自动出现。点一下就能切模型,不需要重启。

也可以把在线 API 模型加进来:Settings → Connections → 填写 OpenAI 兼容的 API 地址和 Key。比如接入 DeepSeek:

API 地址:https://api.deepseek.com/v1
API Key:sk-xxxxx
模型名:deepseek-chat

这样就能在一个界面里同时用本地 Qwen 和云端 DeepSeek,聊天时下拉切换就行。

2. RAG 知识库

Open-WebUI 内置了完整的 RAG 流程:上传文档 → 向量化 → 语义检索 → 增强生成。

在 Workspace → Documents 里上传 PDF、Word、TXT、Markdown 等文件,系统会自动分块、计算向量(用本地 embedding 模型)。之后在聊天里 #文档名 就能引用文档内容。

💡 实战场景:把项目文档、API 文档丢进去,问"这个接口的参数怎么传"就能直接从文档里找答案,不用翻半天。

3. 联网搜索

本地模型没法上网,但 Open-WebUI 可以帮你搜。Settings → Web Search → 启用,填入搜索引擎 API:

启用后,聊天时勾选"联网搜索",模型就能拿到搜索结果来回答。

4. 多模态(图片识别)

如果你本地有支持视觉的模型(如 llava、bakllava),Open-WebUI 会自动识别并允许上传图片。Chat 输入框旁边会出现一个图片上传按钮。

进阶:模型竞技场

Open-WebUI 有一个隐藏功能——模型竞技场(Model Arena)。同时用两个模型回答同一个问题,盲测对比哪个更好。对于选模型非常实用。

在 Playground → Arena 里启用,可以选任意两个模型对比。

踩坑实录

💥 坑 1:Docker 容器连不上 Ollama

现象:Open-WebUI 界面能打开,但模型列表是空的,报 "Connection refused"。

原因:Docker 容器默认用 localhost 访问容器内部,但 Ollama 跑在宿主机上。

解决:加 --add-host=host.docker.internal:host-gateway 参数,或者在 Settings → Connections 里把 Ollama 地址改成 http://host.docker.internal:11434

💥 坑 2:RAG 用了半天不生效

现象:上传了文档,聊天引用后回答跟没引一样。

原因:默认 embedding 模型是 all-MiniLM-L6-v2(英文优化),中文文档效果差。而且需要在 Admin Settings → Documents 里确认 embedding 模型已加载。

解决:换成中文 embedding 模型(如 BAAI/bge-small-zh-v1.5),在 Settings → Documents 里配置。

💥 坑 3:联网搜索不显示结果

现象:配了搜索引擎 API,勾选了联网搜索,模型还是不知道最新信息。

原因:联网搜索只是把搜索结果塞进了 system prompt,模型是否会用取决于它的 following instructions 能力。小模型(3B/7B)经常忽略 search results。

解决:联网搜索场景建议用 14B+ 模型,或者直接用支持 function calling 的模型。

总结

Open-WebUI 是目前本地 LLM 生态里体验最完整的聊天界面。搭配 Ollama 用,就是一套完全本地化的"ChatGPT 平替"——聊天、搜索、文档问答、多模型、多模态,一个界面搞定。

唯一要注意的是:别对小模型期待太高。联网搜索、RAG、多轮对话这些功能,7B 以下模型表现一般,建议 14B+ 起步 🦞


📌 关于本文:Open-WebUI GitHub:github.com/open-webui/open-webui。Ollama 官网:ollama.com