最近帮不少朋友在Windows电脑上部署DeepSeek,需求基本一致:模型跑在本地、数据不出电脑、还能读自己的文档回答问题。本文把完整流程整理出来:Ollama负责运行模型,Open WebUI负责聊天界面和知识库,最后附上最常见的3个报错及解决方法。按步骤操作即可跑通。
一、方案说明与环境要求
整体结构如下:
- Ollama :本地大模型运行工具,安装后在后台提供
http://localhost:11434接口; - DeepSeek-R1 蒸馏版 :Ollama 官方模型库里的
deepseek-r1,有 1.5b~70b 多个尺寸,普通电脑也能跑; - bge-m3:向量化(Embedding)模型,把文档切片转成向量,中文效果不错;
- Open WebUI:开源的 Web 聊天界面,内置"知识库"(RAG)功能,是目前搭配 Ollama 使用最广泛的前端之一。
说明:Cherry Studio、AnythingLLM 等桌面客户端也能接 Ollama 做知识库,原理相同(聊天模型 + 向量模型 + 文档库),学会本文的思路换哪个都不难。
环境要求(来自 Ollama 官方文档):
- Windows 10 22H2 及以上,或 Windows 11;
- NVIDIA 显卡驱动 551.61 及以上(AMD 显卡需支持 ROCm 或 Vulkan 的新驱动);
- 程序本体至少预留 4GB,模型另算,建议准备一个剩余 50GB 以上的非系统盘。
另外提醒一句:Ollama 模型库里的 deepseek-v3、deepseek-v3.1 是 671B 参数的完整版,模型文件动辄数百 GB;带 cloud 标签的新版本(如 deepseek-v4 系列)是在 Ollama 云端运行的,不属于本地部署。个人电脑本地跑,选 deepseek-r1 的蒸馏版就对了。
二、安装 Ollama 并修改模型目录
方式1:图形安装包 。打开 ollama.com/download 下载 OllamaSetup.exe,双击安装,默认装在用户目录,不需要管理员权限。
方式2:PowerShell 一行命令(官网下载页提供):
powershell
irm https://ollama.com/install.ps1 | iex
下载模型之前,先改模型存放位置 ,否则默认存到 C:\Users\用户名\.ollama\models,C盘很快就满了:
- 右键任务栏 Ollama 图标,退出 Ollama;
- 开始菜单搜索"编辑账户的环境变量";
- 新建用户变量:变量名
OLLAMA_MODELS,变量值D:\ollama\models; - 确定保存,再从开始菜单重新启动 Ollama。
新版 Ollama 桌面程序的 Settings 里也有"Model location"可直接选择目录,效果一样。
验证安装:
powershell
ollama -v
curl.exe http://127.0.0.1:11434
# 返回 Ollama is running 即正常
三、按显存选择模型并下载
deepseek-r1 各尺寸的模型文件大小(Ollama 模型库标注,默认 Q4_K_M 量化):
| 标签 | 文件大小 | 建议显存(经验值) |
|---|---|---|
| deepseek-r1:1.5b | 1.1GB | 无独显/4GB 可试 |
| deepseek-r1:7b | 4.7GB | 6~8GB |
| deepseek-r1:8b(latest) | 5.2GB | 8GB |
| deepseek-r1:14b | 9.0GB | 12~16GB |
| deepseek-r1:32b | 20GB | 24GB |
| deepseek-r1:70b | 43GB | 48GB 以上 |
选型原则:模型文件大小 + 1~2GB 余量 ≤ 显存 ,就能全部放进 GPU。deepseek-r1:8b 是目前的 latest 标签,基于 DeepSeek-R1-0528 蒸馏到 Qwen3-8B。
powershell
# 下载并运行聊天模型(以 8GB 显存为例)
ollama pull deepseek-r1:8b
ollama run deepseek-r1:8b
# 下载知识库需要的向量模型(1.2GB)
ollama pull bge-m3
# 查看模型是否跑在 GPU 上
ollama ps
ollama ps 的 PROCESSOR 列显示 100% GPU 最理想;如果显示 100% CPU 或 CPU/GPU 混合,说明显存不够,回答会明显变慢,建议换小一号模型。
四、安装 Open WebUI
Open WebUI 官方支持 Python 3.11 和 3.12,3.13 暂不支持,所以建议单独建一个 3.11 的环境。
方式1:pip 安装(推荐已装 Anaconda/Miniconda 的同学)
bash
conda create -n open-webui python=3.11 -y
conda activate open-webui
pip install open-webui -i https://pypi.tuna.tsinghua.edu.cn/simple
open-webui serve
依赖较多,首次安装需要几分钟。启动完成后浏览器访问 http://localhost:8080。
方式2:Docker 安装(已装 Docker Desktop 的同学)
bash
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=改成你自己的随机字符串 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
访问 http://localhost:3000。注意:Docker 方式下容器要访问宿主机的 Ollama,需要让 Ollama 监听 0.0.0.0(设置方法见第六节报错3)。
首次打开页面会让你创建账号,首个注册的账号就是管理员,密码务必记好。
五、配置本地知识库
- 确认连接 :头像 → 设置 → 管理员(Admin)→ 外部连接,Ollama 地址为
http://localhost:11434(Docker 方式为http://host.docker.internal:11434),左上角模型列表能看到deepseek-r1:8b即连接成功。 - 设置向量模型 :同一位置的"文档"页,嵌入模型引擎选 Ollama ,嵌入模型填
bge-m3,保存。如果之前已经上传过文档,改完需要点"重建索引"。 - 创建知识库:左侧 工作空间 → 知识库(Knowledge)→ 新建,填写名称和描述,上传 PDF、Word、TXT、Markdown 等文件,等待处理完成。
- 提问 :新建对话,选择
deepseek-r1:8b,在输入框输入#,选中刚建的知识库,然后提问,例如"根据知识库,公司报销流程是什么?请引用原文"。
两个提升效果的设置:
- 调大上下文:Ollama 在显存小于 24GB 时默认上下文只有 4096 token,检索到的内容容易被截断。到 设置 → 管理员 → 模型 → 点铅笔图标编辑 → 高级参数,把上下文长度(num_ctx)调到 8192 或更高(会多占显存)。
- 模型不引用文档时 :新版 Open WebUI 默认用"原生函数调用"让模型自己检索知识库,小模型有时调用不稳定。可以:①在对话里用
#直接附加知识库;②在模型编辑页确认内置工具(Builtin Tools)中知识库一项已开启;③文档较短时点击已附加的文件,切换为"使用完整文档"模式;④显存允许的话换 14b 及以上模型。
六、FAQ:3个常见报错及解决
报错1:模型下载很慢、卡住或中途失败
ollama pull支持断点续传,中断后重新执行同一条命令即可继续;- 需要走代理时,设置环境变量
HTTPS_PROXY(官方文档特别说明不要设置HTTP_PROXY,会干扰客户端连接); - 国内网络可以改从魔搭社区(ModelScope)拉取 GGUF 模型:
powershell
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M
- 同时检查
OLLAMA_MODELS所在磁盘空间是否足够。
报错2:显存不足,提示内存不够或回答极慢
典型提示为 model requires more system memory ... than is available,或者能运行但每秒只出几个字。处理顺序:
ollama ps看 PROCESSOR 列,nvidia-smi看显存占用,关掉占显存的程序(游戏、其他模型);- 按第三节表格换小一号模型,例如 14b 换 8b;
- 上下文长度不要盲目调太大,num_ctx 越大显存占用越高;
- 更新显卡驱动到 551.61 以上。
报错3:11434 端口被占用 / 局域网或 Docker 访问不到
端口占用 :手动执行 ollama serve 时报 bind: Only one usage of each socket address ...,多数情况是托盘里的 Ollama 已经在后台运行了,不需要再手动启动。排查命令:
powershell
netstat -ano | findstr :11434
tasklist /FI "PID eq 查到的PID"
确实被其他程序占用,可以把 OLLAMA_HOST 设为 127.0.0.1:11435 换端口,Open WebUI 中的连接地址同步修改。
无法远程访问 :Ollama 默认只监听 127.0.0.1。在 Ollama 设置中打开 Expose Ollama to the network ,或新建用户环境变量 OLLAMA_HOST=0.0.0.0:11434,然后重启 Ollama。首次弹出防火墙提示时允许"专用网络",也可以用管理员 PowerShell 添加规则:
powershell
New-NetFirewallRule -DisplayName "Ollama 11434" -Direction Inbound -Protocol TCP -LocalPort 11434 -Action Allow -Profile Private
安全提醒:11434 接口本身没有鉴权,只在局域网使用,不要直接映射到公网 。如果浏览器插件等网页端调用时报跨域错误,再配置 OLLAMA_ORIGINS。
总结
DeepSeek 本地知识库的核心就三步:Ollama 跑模型、bge-m3 做向量、Open WebUI 管文档。模型尺寸按显存选,上下文按需调大,大部分问题都能用本文的排查思路解决。
有部署或环境问题欢迎评论区留言,我会把高频问题整理成后续文章。 关注白泽软件开发,持续更新实战教程。