本地LLM部署实战:使用Ollama + Open WebUI搭建私有AI助手

2842 字
14 分钟
本地LLM部署实战:使用Ollama + Open WebUI搭建私有AI助手

痛点的开始:ChatGPT很好用,但你舍得把数据交给它吗?#

ChatGPT 很好用,这没人否认。但当你准备把公司内部代码、客户数据、或者个人笔记喂给云端 AI 时,心里总会咯噔一下:

  • 数据会不会被拿去训练?
  • 隐私条款哪天变了我都不知道
  • 用的越多,依赖性越强
  • API 调用量上来后,账单越来越贵

你开始想:能不能在本机跑一个大模型 就放在自己的电脑或服务器上,性能足够用,数据完全本地,不联网也能用。

答案是:可以,而且比你想的简单得多。

这篇文章带你用 Ollama + Open WebUIDocker 中部署一套完整的本地 LLM 方案。从拉取模型、管理对话、到进阶配置,10 分钟上手。

Ollama 是什么?#

Ollama 是一个开源工具,专为本地运行大语言模型而设计。它能让你像拉 Docker 镜像一样拉取模型:

Terminal window
ollama pull llama3.2
ollama pull qwen2.5
ollama pull deepseek-r1

然后一条命令启动交互式对话:

Terminal window
ollama run llama3.2

它把模型下载、量化、推理、API 服务全部打包成了一个命令行工具。底层用了 llama.cpp,但你不必关心这些——拿来就用。

Ollama 的核心优势#

特性Ollama其他方案(vLLM / llama.cpp 裸用)
安装复杂度一键安装需要编译、配环境
模型管理ollama pull/push手动下载、转换格式
API 兼容兼容 OpenAI API需额外适配
GPU 加速自动检测需手动配置 CUDA
模型量化自动选择最优量化需了解 GGUF、GPTQ 等格式

Open WebUI 是什么?#

Ollama 自带命令行交互,但大多数人还是习惯 Web 界面——像 ChatGPT 那样有一个对话框、有历史记录、能传文件。

Open WebUI 就是干这个的。它是一个功能丰富的 AI 对话前端,支持:

  • 多模型切换
  • 对话历史管理
  • 文档上传(RAG 检索增强生成)
  • 用户权限管理
  • 深色/浅色主题
  • Markdown / 代码高亮

部署后打开浏览器,就是一个私有的 ChatGPT。

第一步:Docker Compose 部署(推荐)#

最推荐的方案是 Docker Compose 一键部署 Ollama + Open WebUI:

docker-compose.yml
version: "3.8"
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
environment:
- OLLAMA_KEEP_ALIVE=24h # 模型保持加载,避免频繁加载卸载
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
volumes:
- open-webui_data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- WEBUI_SECRET_KEY=your-secret-key-here
depends_on:
- ollama
restart: unless-stopped
volumes:
ollama_data:
open-webui_data:

启动命令#

Terminal window
docker compose up -d

启动后访问 http://localhost:3000,注册第一个账号(自动成为管理员),就可以选择模型开始对话了。

注意:如果没有 NVIDIA GPU,删除 deploy.resources 部分即可。Ollama 会自动 fallback 到 CPU 推理,速度会慢一些。

第二步:拉取模型#

Open WebUI 启动后,界面里可能还没有模型。你需要先让 Ollama 下载模型。

方式一:通过命令行#

Terminal window
# 进入 Ollama 容器
docker exec -it ollama ollama pull qwen2.5:7b
# 或直接在本机执行(如果本机也装了 Ollama CLI)
ollama pull llama3.2:3b

方式二:通过 Open WebUI 管理页面#

http://localhost:3000/admin/settings → Models 页面,可以直接填写模型名称来拉取。

推荐模型一览#

模型参数量显存需求(4-bit 量化)适合场景
qwen2.5:7b7B~6 GB中文最强,日常对话、代码
llama3.2:3b3B~3 GB英文回答、轻量部署
llama3.1:8b8B~7 GB英文优秀,综合能力最强
deepseek-r1:7b7B~6 GB推理能力强,数学/逻辑
gemma2:9b9B~8 GBGoogle 出品,多语言
qwen2.5:0.5b0.5B~1 GB极致轻量,树莓派可跑
mistral:7b7B~6 GB英文基础好,生态完善
phi3:3.8b3.8B~4 GB微软出品,小而强

显存不够可以跑 CPU 模式,7B 模型用 16GB 内存也能跑,就是慢点(每秒 5-10 token)。

第三步:在 Open WebUI 中开始对话#

模型拉取完成后,在 Open WebUI 界面中:

  1. 点击左上角的模型选择器
  2. 选择你拉取的模型(比如 qwen2.5:7b
  3. 输入你的问题,点击发送

你会得到一个完全本地、完全免费、无任何隐私风险的 AI 对话体验。

而且 Open WebUI 支持文档上传——你可以上传 PDF、Word、TXT 文件,AI 会自动读取内容并基于文档回答。这就是最简单的 RAG(检索增强生成)。

进阶配置#

1. 多模型同时运行#

Ollama 允许同时加载多个模型(只要显存够)。不同的对话可以选择不同的模型:

  • 日常聊天 → qwen2.5:0.5b(快、省资源)
  • 代码编写 → qwen2.5:7b(性能强)
  • 逻辑推理 → deepseek-r1:7b(推理链)

2. 配置模型下载代理#

如果你在国内拉取模型比较慢,可以配置代理:

environment:
- OLLAMA_HOST=0.0.0.0
- HTTP_PROXY=http://your-proxy:7890
- HTTPS_PROXY=http://your-proxy:7890

或者在容器启动后手动设置:

Terminal window
docker exec -it ollama bash
export HTTP_PROXY=http://host.docker.internal:7890
ollama pull qwen2.5:7b

3. 暴露外部访问#

如果你想在局域网内其他设备上访问:

# 配置 Open WebUI
environment:
- WEBUI_SECRET_KEY=your-secure-key-here
- OLLAMA_BASE_URL=http://192.168.1.100:11434 # 改成你服务器 IP
- WEBUI_HOST=0.0.0.0

然后其他设备通过 http://192.168.1.100:3000 访问。

4. 自定义模型(Modelfile)#

Ollama 支持通过 Modelfile 创建自定义模型。比如创建一个”只讲中文的助手”:

FROM qwen2.5:7b
# 设置系统提示词
SYSTEM "你是一个中文AI助手,只能使用中文回答。你知识渊博、回答简洁。"
# 设置参数
PARAMETER temperature 0.7
PARAMETER top_p 0.9

然后构建:

Terminal window
ollama create my-chinese-assistant -f ./Modelfile

5. 与现有应用集成#

Ollama 兼容 OpenAI API 格式,所以任何支持 OpenAI 的应用都可以无缝切换到本地模型。

Python 示例:

from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # Ollama 不校验 API Key
)
response = client.chat.completions.create(
model="qwen2.5:7b",
messages=[{"role": "user", "content": "你好!"}]
)
print(response.choices[0].message.content)

JavaScript 示例:

import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama',
});
const response = await client.chat.completions.create({
model: 'qwen2.5:7b',
messages: [{ role: 'user', content: '你好!' }],
});
console.log(response.choices[0].message.content);

这意味着你可以用 Cursor、Continue.dev、Any-LLM 等工具连接你的本地 Ollama,实现 AI 编程助手本地化。

6. GPU vs CPU 性能对比#

配置模型生成速度适用性
RTX 4090 (24GB)qwen2.5:7b~80 token/s🟢 流畅
RTX 3060 (12GB)qwen2.5:7b~40 token/s🟢 可用
仅 CPU (32GB RAM)qwen2.5:7b~6 token/s🟡 可忍受
仅 CPU (16GB RAM)llama3.2:3b~12 token/s🟢 流畅
树莓派 5qwen2.5:0.5b~4 token/s🟡 慢但能用

三步走:从零到私有 ChatGPT 的完整流程#

如果你觉得有点乱,这里给你一条清晰的路线图:

第一步:准备环境

  • 一台有 Docker 的 Linux 服务器(或你的 Windows/Mac 笔记本)
  • 至少 8GB+ 内存(16GB 以上体验更好)
  • 有 NVIDIA GPU 是加分项,没有也别急

第二步:部署核心服务

  • 按本文的 Docker Compose 配置启动 Ollama 和 Open WebUI
  • 访问 http://localhost:3000,注册管理员账号

第三步:拉取模型,开始使用

  • 先拉一个轻量模型 ollama pull qwen2.5:7b
  • 在 Open WebUI 中选择模型,开始对话
  • 体验满意后,再拉更多模型备用

从零到能用,10 分钟以内。这是本地 LLM 的黄金时代——部署门槛已经低到任何开发者都能轻松上手。

Open WebUI 的高级玩法#

多用户管理#

Open WebUI 支持多用户注册,适合团队共享一台 AI 服务器:

  • 管理员可以创建用户、分配权限
  • 每个用户的对话历史互相隔离
  • 你可以在设置中开启”允许注册”开关

如果只自己用,注册一个账号就够了,关闭开放注册更安全。

RAG:让你的本地 AI 能读文档#

Open WebUI 支持 RAG(检索增强生成),让 AI 能基于你上传的文档回答问题。默认使用内置的轻量嵌入模型,你也可以配置接入 Ollama 上的嵌入模型:

# Docker Compose 中配置
environment:
- RAG_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
- RAG_TOP_K=5 # 检索前 K 个相关片段

上传 PDF、Word 或 TXT 文件后,AI 会自动索引内容。你可以问”这份合同第四条是什么”,AI 会从文档中提取答案——数据全程不外泄。

自定义主题和模型参数#

在 Open WebUI 的设置中,你可以:

  • 修改系统提示词:让 AI 扮演特定角色(翻译助手、代码审查员、写作伙伴)
  • 调整推理参数:Temperature(创造力)、Top P(多样性)、Max Tokens(回复长度)
  • 切换界面主题:深色/浅色模式,跟随系统

生产环境部署建议#

如果你要把 Ollama + Open WebUI 放到生产环境(团队共享或对外服务),注意以下几点:

1. 使用反向代理

# 在 Nginx 或 Caddy 后面
services:
caddy:
image: caddy:2-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
environment:
- DOMAIN=ai.yourdomain.com

Caddyfile:

ai.yourdomain.com {
reverse_proxy open-webui:8080
}

2. 配置 HTTPS

Caddy 会自动申请 Let’s Encrypt 证书,无需手动管理。

3. 资源限制

防止某个模型把服务器吃满:

services:
ollama:
deploy:
resources:
limits:
memory: 16G
reservations:
memory: 8G

4. 定期备份

备份 Open WebUI 的数据目录(对话历史和用户数据):

Terminal window
# 简单的 tar 备份
tar -czf open-webui-backup-$(date +%Y%m%d).tar.gz \
/path/to/open-webui/data

常见问题(FAQ)#

Q:部署后 Open WebUI 页面打不开怎么办?

A:检查 Docker 是否正常运行:docker compose ps。确保 3000 端口没有被占用。查看日志:docker compose logs open-webui

Q:拉取模型太慢了,有没有办法离线导入?

A:可以在有网络的环境下载好 GGUF 格式模型文件,放到 ~/.ollama/models/blobs/ 目录下,然后创建 Modelfile 导入。或者直接用国内的镜像源下载。

Q:显存不够怎么办?

A:三个方案:1)用更小的模型(qwen2.5:0.5b 或 llama3.2:3b);2)开启 CPU offloading(部分层跑 CPU);3)纯 CPU 模式(慢点但能用)。7B 模型 4-bit 量化需要约 6GB 显存。

Q:Open WebUI 有没有中文界面?

A:有的,Open WebUI 支持多语言,在设置里切换为中文即可。

Q:我可以同时跑多个模型吗?

A:显存够就可以。Ollama 允许多个模型同时加载,Open WebUI 也可以在不同对话中使用不同模型。

Q:Ollama 和开源模型可以用来写商业代码吗?

A:大多数开源模型使用宽松许可(Apache 2.0 / MIT / Llama 2 Community License),可以商用。但建议检查具体模型的 LICENSE 文件。

Q:和 ChatGPT 比起来,本地模型的效果差多少?

A:7B 级别的模型在简单任务(翻译、摘要、问答)上表现已经相当不错。但在复杂推理、长上下文、创意写作等方面,和 GPT-4 还有差距。好消息是模型进步极快,每个季度都有新的突破。

总结#

用 Ollama + Open WebUI 部署本地 LLM 的优势很清晰:

  • 隐私安全:数据不出本机,100% 本地运行
  • 零成本:没有 API 费用,一次部署永久使用
  • 高度可控:自由选择模型、自定义提示词、微调参数
  • 无需联网:断网也能用,出差也不影响

部署指南到这里就结束了。你只需要一个 docker compose up -d,10 分钟就能拥有一个私有 ChatGPT。不要再犹豫数据安全问题了——把你的 AI 放在自己的服务器上,才是真正的掌控。

而随着模型能力的持续提升(今年的 7B 模型已经比去年的 70B 还强),本地 LLM 的意义只会越来越大。现在部署,就是跑在趋势的前面。

延伸阅读#

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
本地LLM部署实战:使用Ollama + Open WebUI搭建私有AI助手
https://www.kshare.top/posts/ollama-guide/
作者
Kshare
发布于
2026-06-23
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Kshare
Hello, I'm Kshare.
公告
站点已开启广告(类型:弹窗广告),给您带来的不便敬请谅解。如有更好的广告建议,欢迎发送邮件至 t9uzrz6u@anonaddy.me,感谢您的支持!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
187
分类
9
标签
190
总字数
490,175
运行时长
0
最后活动
0 天前

文章目录