**摘要:**本文面向没有独立显卡的 Windows 用户,完整演示如何在纯 CPU 环境下搭建一套可离线使用的私有 AI 对话系统。全文按五个阶段推进:先启用 WSL 2 并安装配置 Docker Desktop 与镜像加速,再用 Docker 部署 Ollama 引擎并做数据持久化,接着下载运行轻量级模型 qwen2.5:1.5b,然后部署 Open WebUI 网页界面,最后完成账号注册与模型选择。文末补充 WSL 内存限制、网页语音对话等进阶优化和日常常用命令,帮助读者把整套环境稳定跑起来。
一、方案概览与前置说明
整套方案由三个组件构成:WSL 2 提供 Linux 运行环境,Docker Desktop 负责容器管理,Ollama 负责模型推理,Open WebUI 提供浏览器端的聊天界面。全部组件运行在本机,模型文件与对话数据都保存在本地硬盘,不依赖任何在线服务。
开始之前,请确认以下前置条件:
- 操作系统为 Windows 10(2004 及以上版本)或 Windows 11,且已开启 CPU 虚拟化(可在任务管理器「性能」页查看虚拟化是否已启用)。
- 建议内存 16GB 及以上,纯 CPU 推理对内存比较敏感。
- 预留至少 10GB 磁盘空间,用于存放 Docker 镜像和模型文件。
- 全程需要管理员权限的 PowerShell 窗口。
纯 CPU 环境的核心原则是「模型要小」。参数量越大,推理速度下降越明显,后文会给出具体的模型选择建议。
二、第一阶段:基础环境准备
2.1 启用 WSL 2
以管理员身份运行 PowerShell,输入以下命令并回车,等待安装完成后重启电脑:
powershell
wsl --install
重启后,在 PowerShell 中输入下面的命令查看状态:
powershell
wsl --status
如果输出中显示「默认版本:2」,说明 WSL 2 已启用成功。
2.2 安装 Docker Desktop
下载 Docker Desktop 安装包后双击运行,在配置界面务必按以下方式选择:
- Per-user installation (Recommended):单用户安装,推荐选项。
- Use WSL 2 instead of Hyper-V:勾选,使用 WSL 2 作为后端。
- Allow Windows Containers:不要勾选。
安装完成后启动 Docker Desktop,左下角显示绿色的 Engine running 即表示引擎已就绪。
2.3 配置 Docker 镜像加速
点击 Docker Desktop 右上角的齿轮图标进入 Settings ,切换到 Docker Engine,把右侧的 JSON 配置替换为:
json
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.m.daocloud.io"
]
}
点击 Apply & Restart 重启 Docker,使镜像加速配置生效。
三、第二阶段:部署 Ollama 引擎
打开 PowerShell,先拉取 Ollama 镜像:
powershell
docker pull ollama/ollama
然后启动容器,同时配置数据持久化和开机自启:
powershell
docker run -d --name ollama -p 11434:11434 -v ollama:/root/.ollama --restart always ollama/ollama
关键参数说明:
-v ollama:/root/.ollama:把模型文件挂载到本地数据卷,即使容器被删除,模型依然保留。--restart always:开机自动启动容器,避免重启后服务消失。-p 11434:11434:把 Ollama 的默认端口映射到宿主机,供后续调用。
四、第三阶段:下载并运行大模型
进入容器内部运行模型:
powershell
docker exec -it ollama ollama run qwen2.5:1.5b
纯 CPU 环境下的模型选择建议:
- 首选 qwen2.5:1.5b:模型体积约 1GB,推理速度飞快,日常问答足够用。
- 避坑提醒:不要尝试 9B 或更大的模型,纯 CPU 推理会慢到难以接受。
出现 >>> 符号后即可直接对话,输入 /bye 退出交互模式。
五、第四阶段:部署 Open WebUI 网页版
回到 PowerShell,运行以下命令启动 Open WebUI 容器:
powershell
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
启动后执行下面的命令确认容器状态:
powershell
docker ps
当 open-webui 的状态列出现 (healthy) 字样时,说明网页服务已正常就绪。
六、第五阶段:开启私人 AI 之旅
- 浏览器访问
http://localhost:3000。 - 注册管理员账号,账号信息可以随意填写,所有数据都保存在本地。
- 点击页面最上方的下拉菜单,选择 qwen2.5:1.5b,即可开始聊天。
七、进阶优化:内存与语音
7.1 限制 WSL 内存,防止卡死
在 C:\Users\你的用户名\ 目录下新建 .wslconfig 文件,填入以下内容:
ini
[wsl2]
memory=20GB
processors=8
保存后在 PowerShell 中执行下面的命令,让配置生效:
powershell
wsl --shutdown
7.2 开启网页语音对话
在 Open WebUI 左下角点击头像进入 设置(Settings) ,切换到 音频(Audio):
- STT Engine 选择 Web API。
- TTS Engine 选择 Browser。
- 开启 Conversation Mode,即可进行语音对话。
八、日常常用命令
| 操作 | 命令 |
|---|---|
| 查看运行状态 | docker ps |
| 停止网页版 | docker stop open-webui |
| 启动网页版 | docker start open-webui |
| 彻底释放内存 | wsl --shutdown |
九、总结
按照以上五个阶段操作,即可在纯 CPU 的 Windows 机器上跑起一套完全本地化的私有 AI 对话系统:Ollama 负责模型推理,Open WebUI 提供友好的网页界面,Docker 与 WSL 2 保证环境隔离和可迁移性。实际使用中建议优先选择 1.5B 级别的小模型,并通过 .wslconfig 限制 WSL 资源占用,避免长时间运行导致系统卡顿。