2026 Ollama + Open WebUI 本地部署大模型:一条龙从零到对话
2025 到 2026 年,本地大模型从极客圈的玩具变成了普通人也能用的工具。以前想用 AI 只能依赖 ChatGPT、文心一言这些云服务——每一次对话都要把数据上传到别人的服务器上,而且免费版对话次数有限制,想多用就得充值。你用 ChatGPT 写一封工作邮件,内容就存在 OpenAI 的服务器上。
Ollama 的出现彻底改变了这个局面。它是一个开源的本地大模型运行框架,让运行大模型变得像 Docker 拉取镜像一样简单。配合 Open WebUI 就等于用你自己的机器跑了一个 ChatGPT——断网了照样能用,数据完全不出门,对话次数没有上限,也不需要花一分钱,唯一消耗的是电费。
这套方案部署好之后,你在浏览器里就能跟本地大模型对话,界面和 ChatGPT 几乎一样。而且可以自由切换模型——写代码用 DeepSeek,日常聊天用 Qwen,英文任务切到 Llama。全部在手,不依赖任何云服务。不管你是开发者还是普通用户,10 分钟部署完就能用上,最直接的感受就是:没有对话额度焦虑了,想问多少问多少,不用对着”当前时段已用完”的提示干瞪眼。
一、前置条件
- 一台有足够内存的机器。CPU 运行 7B 模型需要至少 8GB 可用内存。如果加 GPU 加速,需要一张 8GB 以上显存的 Nvidia 显卡。
- Docker 和 Docker Compose。不需要深入了解,跟着命令敲就行。
- 20GB 以上的硬盘空间。模型文件很大——DeepSeek-R1 7B 大概占 14GB 空间,Qwen2.5 7B 也差不多。
没有 GPU 也能玩。CPU 跑 7B 模型每秒输出几个 token(一个 token 大概一个字),对查资料、写文本、聊天这些场景完全够用——回复速度大概跟打字差不多。如果你追求实时对话体验,可以考虑 1.5B 的小模型或者上显卡。
二、部署 Ollama
一个 Docker Compose 文件跑起来所有服务:
services: ollama: image: ollama/ollama:latest container_name: ollama restart: unless-stopped ports: - "11434:11434" volumes: - ./ollama/models:/root/.ollama environment: OLLAMA_KEEP_ALIVE: 24hOLLAMA_KEEP_ALIVE: 24h 的作用是让模型保持在内存中 24 小时不卸载。如果不设这个值,每次对话前模型都要重新加载到内存——等个十几秒才出第一句话,体验很差。设了这个之后,模型常驻内存,对话秒响应。
启动容器:
docker compose up -d拉取模型。以 DeepSeek-R1 7B 为例(目前中文能力最强的开源模型之一):
docker exec ollama ollama pull deepseek-r1:7b拉取过程取决于你的网络速度——模型文件 14GB 左右,千兆宽带大概几分钟,慢的话可能十几分钟。显示 “success” 就代表拉取完成。
验证一下模型是否正常工作:
curl http://localhost:11434/api/generate -d \ '{"model":"deepseek-r1:7b","prompt":"你好,请用一句话介绍自己"}'返回的 JSON 里包含 "response" 字段,里面就是模型的回答。能看到回答就说明 Ollama 部署成功了。
三、部署 Open WebUI
Ollama 本身只提供 API 接口,没有聊天界面。Open WebUI 是目前最成熟的 Ollama 前端——界面和 ChatGPT 几乎一样,支持对话历史管理、多模型切换、文件上传、代码高亮等功能。把下面内容追加到刚才的 docker-compose.yml 里:
open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui restart: unless-stopped ports: - "3000:8080" volumes: - ./open-webui/data:/app/backend/data environment: OLLAMA_BASE_URL: http://ollama:11434 depends_on: - ollamaOLLAMA_BASE_URL 指向 Ollama 容器,因为两个容器在同一个 Docker 网络里,直接用容器名 ollama 就能找到。depends_on 确保 Ollama 先启动。
重启所有服务:
docker compose up -d启动后用浏览器访问 http://你的IP:3000。第一次打开会让你注册一个本地账号——注册信息存在你本地的 ./open-webui/data 目录里,不会传到任何外部服务器。注册完成后登录进去,你会看到一个和 ChatGPT 几乎一样的聊天界面。
在左上角的下拉菜单里选择你刚才拉取的 deepseek-r1:7b 模型,随便问点什么测试一下。能正常返回回答就说明所有配置正确。
四、模型推荐
| 模型 | 参数量 | 推荐显存 | 中文能力 | 适用场景 |
|---|---|---|---|---|
| DeepSeek-R1:7B | 7B | 8GB | 极强 | 推理分析、首选推荐 |
| Qwen2.5:7B | 7B | 8GB | 极强 | 日常对话、内容写作 |
| Qwen2.5:1.5B | 1.5B | 2GB | 较强 | 低配机器专用 |
| Llama 3.1:8B | 8B | 10GB | 一般 | 英文任务为主 |
| Gemma 2:9B | 9B | 12GB | 弱 | Google 出品,英文幽默能力好 |
| Phi-3:3.8B | 3.8B | 4GB | 一般 | 微软出品,推理能力强 |
新手建议第一台模型选 DeepSeek-R1 7B。 它的中文理解能力是目前同参数量级里最好的,而且推理链(思维链)展示得很清晰——你不仅能看到答案,还能看到它是怎么一步步推理出来的。如果机器只有 4GB 内存,选 Qwen2.5 1.5B。
切换模型很简单:在 Open WebUI 里点左上角模型选择下拉菜单,选另一个已拉取的模型就切换过去了。Ollama 支持同时保持多个模型在内存中,只要你的内存够大就行。
五、GPU 加速(选配)
想让大模型跑得更快?GPU 加速能让推理速度快 5-10 倍。7B 模型在 CPU 上每秒出 3-5 个 token,启用 GPU 后能到 30-50 个 token——从”打字速度”变成了”实时对话”。
前提是你有一张 Nvidia 显卡,至少 8GB 显存。在 Docker 里启用 GPU 需要先安装 Nvidia Container Toolkit:
# Ubuntu/Debian 安装方法sudo apt install nvidia-container-toolkitsudo systemctl restart docker然后在 docker-compose.yml 的 Ollama 服务里加上 GPU 配置:
ollama: # ... 其他配置保持不变 deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu]重新部署后,运行模型时会自动使用 GPU。在日志里能看到类似 “llm load model with GPU” 的提示。
六、实际使用体验
部署好之后,这套系统能做什么?我说几个我高频使用的场景。
写代码时做代码解释和 debug。 遇到一段看不懂的代码,复制到 Open WebUI 里扔给 DeepSeek-R1,它不仅解释代码逻辑,还会指出潜在问题。对 Python、JavaScript、Go 等主流语言的支持都很好。
翻译和润色英文文档。 需要写英文邮件或者翻译技术文档,把原文贴进去,告诉模型”翻译成地道的英文”或者”润色这段中文”,效果比很多在线翻译工具好——因为是基于语义理解的,不会机械直译。
整理读书笔记和会议纪要。 一段零散的笔记丢进去,让模型整理成结构化的内容——分要点、加标题、提炼结论。做出来后基本就是一篇完整的文章框架。
本地知识库问答。 Open WebUI 支持上传 PDF、Word、TXT 等文件,模型会读取文件内容并回答基于这些文档的问题。比如你上传了一本技术书的 PDF,可以直接问”这本书第三章讲的是什么”。数据存在本地,不怕隐私泄露。
离线使用。 这是本地模型最大的优势。出差坐高铁、在飞机上、去没信号的山里露营——打开电脑上的 Open WebUI,跟平时一样用。不用考虑有没有网络,不用担心中途断连对话记录丢失。
这些场景的核心价值不是”有没有免费 AI”,而是”数据不出门”加上”随时可用”。这对写代码的人、处理敏感信息的用户来说格外重要。
七、外网访问
家里部署好了,出门在外也想用。两种方案:
方案一:Nginx Proxy Manager 反代。 把 Open WebUI 的 3000 端口配个域名和 HTTPS 证书,在任何浏览器上访问域名就能用。适合习惯用手机浏览器直接访问的场景。
方案二:Tailscale 组网。 手机装 Tailscale,通过虚拟 IP 直接访问。流量端到端加密,不走公网中转。如果家里已经有 Tailscale 了,那最简单——不用额外配任何东西。
建议优先用 Tailscale 组网(参考Tailscale 教程)。大模型对话的数据量不大,但毕竟涉及隐私——走 Tailscale 的加密隧道比暴露到公网上安全。而且 Tailscale 的延迟通常更低,因为点对点直连比经过反代服务器快。
七、常见问题
Q:CPU 跑大模型太慢了,值得买个显卡吗? 先试试 CPU 跑 1.5B 的小模型感受一下——如果只是做文案写作、代码分析、信息总结这些不需要实时对话的场景,CPU 的速度完全够用。如果你需要实时聊天体验(说话后马上想听到回应),那确实得上显卡。
Q:对话数据会不会泄露? 不会。Ollama 是纯本地推理,数据不离开你的机器。Open WebUI 的所有数据(账号信息、对话历史、设置)也存在本地。断网了照样能用——你可以把网线拔了,对话不受任何影响。
Q:同时装了好几个模型,硬盘够吗?
7B 模型每个大约 14GB,装三个就 42GB 了。建议只装你常驻使用的 2-3 个模型,不用的用 ollama rm 删掉。模型随时可以重新拉取,不需要一直保留。如果你硬盘空间有限,先装一个 DeepSeek-R1 7B 用着,等熟悉了再考虑加其他模型。
Q:OLLAMA_KEEP_ALIVE 设了长时间会不会吃内存?
模型加载后会占大约 14GB 内存(7B 模型)。如果你的机器内存足够,这不是问题。如果内存紧张,可以设成 5m(对话结束后 5 分钟卸载),或者不加这个环境变量使用默认值。
Q:Open WebUI 和 Ollama 分开装有什么好处? 分开装的好处是两个服务可以独立更新。你可以在不停止 Open WebUI 的情况下拉新模型或者升级 Ollama,反之亦然。如果装在一起,更新一个就要停整个服务。
延伸阅读
- Docker 换源避坑指南 — 部署前的必备准备
- Nginx Proxy Manager 反代面板 — 统一管理所有服务的访问入口
- Stirling PDF 自建 PDF 工具箱 — 30多种PDF处理工具合一
部署完 Ollama + Open WebUI,你得到的是一个完全私有、完全免费、永不掉线、没有对话次数上限的 AI 助手。断网了照样能用,数据完全不出门,想问多少句就问多少句。结合 n8n 的工作流自动化能力(参考n8n 教程),还可以实现 AI 日报自动生成、文章摘要推送等更复杂的场景。而且本地模型还在快速进步——每个月都有新模型发布,跑在同样硬件上的效果越来越接近云服务。Ollama 更新模型版本也很方便,一条命令就能拉最新版。这个趋势说明本地部署 AI 不是妥协方案,而是越来越靠谱的长期选择。
推荐指数:⭐⭐⭐⭐⭐
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!