我用 Windows 当主力机,从下载 Ollama 到把 DeepSeek 跑起来,再接上 Web UI、最后搭出个人知识库,全程没碰云服务、没用大厂 API,全靠本地算力。这套东西看起来有四个环节,实际上一旦理清“模型服务、界面层、检索层”之间的关系,半天就能搞定。下面把每一步的细节、参数、坑都交代清楚,照着走就行。
1. 整体链路拆解:先搞懂这四个环节到底在干什么
1.1 这个方案解决什么需求
很多人一看到“Ollama + DeepSeek + UI + 知识库”就发懵,觉得门槛高。其实拆开看,四个词分别解决四件事:
- Ollama 负责把开源大模型“装进”你的电脑,提供一个本地推理服务,对外暴露一个 API 接口,默认跑在
http://localhost:11434。你可以用命令行直接交互,也可以让其他程序来调用它。 - DeepSeek 是你要运行的模型本体,具体来说是 DeepSeek 开源出来的对话模型权重。在 Ollama 生态里,你能拉到的通常是 DeepSeek-R1 系列的不同尺寸版本,从 1.5B 到 70B 都有,配置不够就用小尺寸,想体验更强推理就用大尺寸。
- UI 是给模型套上一层“浏览器页面”或“桌面窗口”,让你像用 ChatGPT 一样在对话框里打字,而不是对着黑底白字的终端。
- 知识库解决的是“让模型知道你私有的资料”。模型只会回答它能记住的公开知识,你丢进去一份公司制度、行业报告或者个人笔记,它本来不知道,但通过 RAG(检索增强生成)技术,可以让它在回答前先检索你的文档,再把相关内容拼进上下文,从而给出基于你私有资料的答案。
这四个环节串起来后,你得到的是一个完全离线、数据不出本机、可自由提问、可喂私有文档的本地 AI 系统。适合谁?开发者想做二次开发、写文稿的人想让大模型帮自己总结资料、小团队想搭建内部 AI 问答工具、以及纯粹担心隐私不想把数据交给云端的人。
1.2 为什么在 Windows 上这么做
很多人觉得本地跑大模型是 Linux 的专利,其实 Windows 上跑这套已经非常成熟了。Ollama 官方提供 Windows 安装包,底层用到了 WSL2 或者原生 Windows 二进制,对普通用户来说根本不用碰 Linux。DeepSeek-R1 的 7B/8B 量化版本,在 8GB 内存 + 独立显卡的机器上就能有可用的速度,没有显卡的纯 CPU 机器也能跑,只是慢一点。
我推荐的路径是:Ollama 装好 → 拉取 DeepSeek 模型 → 测试命令行对话 → 安装 UI(这里我会推荐两条路,一条轻量客户端,一条 Web 服务)→ 用支持知识库的 UI 上传文档测试 → 再回头补知识库的进阶玩法。你先按这个顺序走,别急着一步到位,因为每一步都能独立验证,出问题容易定位。
2. Windows 环境下 Ollama 的安装与关键配置
2.1 下载安装:官网直下太慢怎么办
到 Ollama 官网下载 Windows 安装包,这个文件大约 300MB 左右。装上之后是图形界面加托盘程序,安装过程不需要特殊配置,默认安装到C:\Users\你的用户名\AppData\Local\Programs\Ollama。装完后命令行里运行ollama --version能输出版本号就是成功了。
如果你发现官网下载很慢,可以试试 GitHub Releases 页面里找对应版本的安装包。另外 Windows 上如果装了winget,直接执行:
winget install Ollama.Ollama也能装。装完之后,托盘区会出现一个羊驼图标,说明 Ollama 服务已经在后台跑起来了,默认监听127.0.0.1:11434。
这里有个容易踩的坑:安装路径默认在 C 盘,模型文件默认也放在 C 盘用户目录下,路径形如C:\Users\你的用户名\.ollama\models。大模型动辄几个 GB,C 盘空间紧张的人建议提前改路径。
2.2 修改模型存放路径与环境变量
关闭 Ollama 托盘程序,然后新建环境变量:
- 变量名:
OLLAMA_MODELS - 变量值:
D:\ollama\models(改成你自己的盘符)
补充说明一下,Windows 设置环境变量的路径是:右键“此电脑” → 属性 → 高级系统设置 → 环境变量。改完后要重启终端窗口。重新打开 Ollama,之后再ollama pull的模型就都存到 D 盘了。
另外几个常用的环境变量也一并说清楚:
OLLAMA_HOST:改成0.0.0.0:11434可以让局域网内其他设备访问你的模型服务,默认只允许本机访问。OLLAMA_NUM_PARALLEL:控制并行请求数,显存够大的话可以设成 2 或更多。OLLAMA_KEEP_ALIVE:模型在内存中的驻留时间,默认 5 分钟。如果你的机器内存有限,可以设小一点,比如OLLAMA_KEEP_ALIVE=2m。
改完环境变量重启 Ollama 后,可以用ollama list看模型列表,用ollama ps看当前加载了哪些模型。
2.3 验证安装和基本命令
启动完成后,命令行里挨个敲:
ollama list ollama pull deepseek-r1:8b ollama run deepseek-r1:8b第一个命令查看已有模型,第二个命令从模型库拉取 DeepSeek-R1 的 8B 版本,第三个命令直接进入交互式对话。如果第三步能在终端里跟它聊天,说明底子已经通了。
3. 本地部署 DeepSeek 模型:尺寸选择、下载与跑通
3.1 该选多大尺寸的 DeepSeek 模型
这是新手最容易纠结的问题。DeepSeek-R1 在 Ollama 官方库里有多个尺寸标签,我按配置给你一个选型参考:
| 建议配置 | 可选模型标签 | 显存/内存需求参考 |
|---|---|---|
| 8GB 内存无独显 | deepseek-r1:1.5b | 约 2GB 内存 |
| 16GB 内存无独显 | deepseek-r1:7b或8b | 约 5~6GB 内存 |
| 8GB 显存 | deepseek-r1:8b | 约 6GB 显存,CPU 内存不低于 16GB |
| 16GB 显存 | deepseek-r1:14b | 约 10GB 显存 |
| 24GB 显存及以上 | deepseek-r1:32b或70b | 32B 约 20GB,70B 建议 32GB+ |
日常使用,我推荐优先考虑deepseek-r1:8b。它在推理能力和资源占用之间比较平衡,中文理解好,做知识库问答、文档总结都很稳。如果你的电脑连 8B 都吃力,就退到1.5b,虽然能力弱一些,但至少能跑通整个流程,等你熟悉之后再换大模型。
3.2 模型下载慢的解法:从镜像站下载 GGUF 再导入
直接执行ollama pull deepseek-r1:8b是走官方模型库下载。这个库在国外,很多网络环境下速度很不稳定,经常出现下载到一半卡住的情况。
我个人比较推荐的做法是从国内镜像站下载 GGUF 格式的模型文件,再导入 Ollama。具体思路是:先把 DeepSeek-R1 8B 的量化版本文件(通常是 4-bit 量化,文件名带q4_k_m)下载到本地,然后通过 Ollama 的 Modelfile 机制把 GGUF 文件转成 Ollama 能管理的格式。
我以 ModelScope(魔搭社区)下载为例,那里的 DeepSeek 模型文件比较全。下载到一个固定目录,比如D:\models\deepseek-r1-8b-q4_k_m.gguf,然后在该目录下新建一个文本文件命名为Modelfile,内容就写一行:
FROM ./deepseek-r1-8b-q4_k_m.gguf保存后打开终端,进入这个目录,执行:
ollama create deepseek-r1 -f ./Modelfile这一步会把本地 GGUF 文件注册成 Ollama 模型,之后就能直接ollama run deepseek-r1。镜像站下载速度一般是几百 KB 到几 MB 每秒,比官方源稳定很多。注意,不要混着用,你从哪个文件导入,就要保证那个文件是你想要的那个模型版本,名称自己起,别和官方标签混淆。
3.3 跑通首次对话并调整运行参数
模型导入或拉取完成后,执行:
ollama run deepseek-r1首次启动会把模型加载进内存,加载过程根据模型大小可能需要几十秒到几分钟。终端里输入“你好”试试,如果能看到回复,说明本地模型已经在你的 Windows 上正常部署了。
如果觉得回复慢,可以看一下是不是被 CPU 跑还是被 GPU 加速。执行ollama ps,输出里能看到“PROCESSOR”列,如果写着100% GPU,说明 GPU 加速生效;如果写着100% CPU,说明没有走显卡。没有 N 卡的话,Windows 下 Ollama 默认走 CPU,这是正常的。有 N 卡但没生效,需要装对应版本的 NVIDIA 驱动,以及设置CUDA_VISIBLE_DEVICES或者确保安装的 Ollama 版本支持 GPU(新版本默认支持)。
对话过程中,直接用ollama run的弊端是没有记忆插件的概念,退出再进上下文就没了。这个不影响后续接 UI,因为 UI 会把对话记录存在自己的存储里。
4. UI 可视化:四种方案怎么选、怎么配
4.1 UI 方案对比
命令行能用,但大多数人还是需要界面。我实际用过的方案里,挑四个有代表性的:
| 方案 | 类型 | 安装难度 | 知识库支持 | 适用场景 |
|---|---|---|---|---|
| Chatbox | Windows 桌面客户端 | 极低 | 支持 | 日常聊天、轻量测试 |
| Cherry Studio | Windows 桌面客户端 | 极低 | 支持 | 中文界面、多模型管理 |
| Open WebUI | Web 服务(Docker 或 pip) | 中等 | 支持(对方引用) | 局域网共享、功能扩展 |
| AnythingLLM | Windows 桌面客户端 | 低 | 强 | 个人知识库一体化首选 |
如果你想最快看到 UI,选 Chatbox 或 Cherry Studio。如果你想一步到位连知识库,直接看 AnythingLLM。Open WebUI 功能最强、最像 ChatGPT 网页版,但对 Windows 小白来说,Docker 装起来会多一些步骤。
4.2 最快方案:Chatbox 桌面客户端
去 Chatbox 官网下载 Windows 版,安装后打开。点左下角设置,模型服务商选择“Ollama”,API 地址填http://localhost:11434,模型下拉框选deepseek-r1。保存后回到对话页,就能打字聊天了。
这个方案的优点是零配置依赖,不要求装 Docker。缺点是 Chatbox 的知识库能力比较基础,适合先验证模型,不适合做复杂的私有知识问答。
4.3 进阶方案:Open WebUI + Docker Desktop
Open WebUI 是我在 Windows 上最终留下使用的方案。你需要在 Windows 上装 Docker Desktop,安装时选 WSL2 后端,然后打开终端执行:
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,注册管理员账号,进入设置。在“模型”里接 Ollama,注意容器内部要访问宿主机,API 地址不能写localhost,要写http://host.docker.internal:11434。我之前第一次配的时候没注意这个,容器里一直连不上 Ollama,后来改成host.docker.internal就通了。
Open WebUI 支持直接管理 Ollama 模型、调参数、多会话。它也能挂在局域网里,让同事用浏览器访问。如果你对 Docker 不熟,遇到镜像拉不下来,可以找能用的注册表加速源,这也是国内 Docker 用户绕不开的问题。
4.4 一体化选择:AnythingLLM
AnythingLLM 的定位是“本地知识库 + 大模型客户端”,它内置向量数据库,不用你自己装任何中间件。我建议如果你最终目的是知识库,就跳过 Chatbox,直接用 AnythingLLM。安装后,它有图形化的配置向导。
在设置里,LLM 提供商选 Ollama,模型选deepseek-r1,API 地址同样填http://localhost:11434。向量数据库选内置的 LanceDB,嵌入模型建议选内置的默认嵌入模型,也可以选 Ollama 里的nomic-embed-text。注意:如果你没有单独ollama pull nomic-embed-text,要先把 274MB 的嵌入模型拉下来。
5. 搭建个人知识库:RAG 到底怎么落地
5.1 RAG 原理:不用重新训练也能“学会”新知识
知识库不是把文档塞给模型让它记住,而是采用 RAG。模型本身不会变,你问一个问题时,系统先把你的问题转换成向量,然后在文档库里找到语义最相近的几段文字,再把这几段文字和你的问题一起交给模型,模型基于这些文字生成回答。
这样做的最大好处是:模型只负责生成,文档内容存在向量数据库里,随时增删改,不需要重新训练模型,也不怕模型“记错”。整个过程是实时的,换一份文档马上就能用到新知识。
5.2 用 AnythingLLM 做知识库:具体步骤
打开 AnythingLLM 后会先创建 Workspace,每个工作区对应一个独立的知识库。进入工作区,左侧是聊天界面,右侧是文档管理区。点击“上传”,支持 PDF、TXT、Markdown、Word 等多种格式。上传后,系统会先把文档切分成小块,也就是 chunk,默认配置大概是每块几百个字符。然后系统为每一块生成向量,存到内置向量库里。当你的文档数量多或者是 PDF 扫描件时,切分和向量化会慢一些,耐心等进度条走完。
这里有个实操建议:不要一口气丢几百个文件进去。先丢两三个跟你要问的问题相关的文档,问几个问题看效果,没问题再批量上传。否则一旦效果不好,很难判断是文档切分的问题还是模型理解能力的问题。
测试时,问一句“根据我上传的资料,总结一下核心内容”。如果回答里引用了文档里的原文,或者回答内容明显和你上传的文档一致,说明知识库链路是通的。AnythingLLM 还支持在答案下方显示来源引用,点开可以看到它是基于哪些 chunk 生成的,方便你排查。
5.3 进阶玩法:Dify、RagFlow 和 FastGPT 怎么选
AnythingLLM 够用,但如果你想做更复杂的场景,比如把知识库做成一个对外 API、加入多轮对话的工作流编排,那就得看向更重的开源平台。
Dify 在 Windows 上可以用 Docker Compose 一键启动,它的“知识库”模块和“工作流”模块结合得很紧密,可以做成“用户提问 → 检索知识库 → 调用 DeepSeek → 输出答案”的完整流水线。RagFlow 则更侧重文档解析,尤其对 PDF 表格、版面复杂的文档效果好。FastGPT 是国内社区用得多的另一个选项,文档体验相对友好。
这三个平台都支持接入 Ollama 提供的本地模型,架构上都可以视为“知识库 + 模型编排器”。但必须提醒的是,它们的安装复杂度比 AnythingLLM 高不止一个量级,涉及 Docker 容器、外部 PostgreSQL/Redis、对象存储等组件。你在 Windows 上想尝鲜,先从 AnythingLLM 开始,等真正需要工作流了再迁移。
5.4 搭配 Obsidian 的偷懒玩法
如果你平时用 Obsidian 记笔记,那其实可以不用单独搭知识库系统,直接在 Obsidian 里接入本地模型。目前社区有几款插件可以做到,比如 Smart Connections 和 Copilot。
思路是:把 Obsidian 的 vault 目录当作文档来源,插件读取你本地所有 Markdown 笔记,向量化索引后,你可以在 Obsidian 界面里直接问笔记里的内容。底层模型依然可以指向 Ollama 的deepseek-r1。这样你根本不需要手动“上传”文件,笔记更新后重新索引一遍就行。
我自己就是把 300 多篇笔记全部索引进去,平时问“我之前写过关于 XX 的那篇笔记里提到的核心观点是什么”,它直接定位到对应的段落,效率比我手动翻笔记高太多。如果你已经重度使用 Obsidian,强烈推荐试一下。
6. 常见问题与排查实录
6.1 模型下载太慢、中途失败
遇到这种情况,先别死磕ollama pull。断开重试通常解决不了根源。我的办法是直接走镜像站下载 GGUF 文件,然后用 Modelfile 导入。如果已经下载一半,可以用支持断点续传的下载工具重新拉取,然后覆盖原文件,再执行导入。
6.2 UI 连不上 Ollama
启动 UI 后提示“Failed to connect to Ollama”或类似错误,优先检查三件事:
- Ollama 托盘程序是否还在运行,没有运行就先启动它。
- 地址是否写对:本机用
127.0.0.1:11434或localhost:11434;容器内用host.docker.internal:11434。 - 端口有没有被占用:执行
netstat -ano | findstr 11434,看 11434 是否在监听。如果有 PID 显示,但 Ollama 没启动,可能是别的程序占用了端口。如果 11434 端口被占用,可以改OLLAMA_HOST指向其他端口,例如OLLAMA_HOST=127.0.0.1:11435。
6.3 界面卡顿、输入响应慢
如果你用的是 Open WebUI 并且页面明显卡顿,先看模型加载了多少个。WebUI 里每切换一次模型,如果OLLAMA_KEEP_ALIVE拉满,多个模型会同时驻留内存,内存不足就会页面卡。把OLLAMA_KEEP_ALIVE设为2m,并且在任务管理器里观察内存占用。另外,浏览器别同时开太多重型标签页,Open WebUI 的页面本身是 React 应用,内存吃得不小。
6.4 内存不够用的优化措施
机器只有 16GB 内存,跑 8B 模型经常感觉要爆。此时可以:
- 关闭所有不用的后台程序,特别是浏览器多开标签页。
- 换更小的量化模型,比如
deepseek-r1:1.5b。 - 如果用的是 Docker 方案,检查 WSL2 的内存上限配置:在
C:\Users\你的用户名\.wslconfig里写上[wsl2] memory=8GB,防止 WSL2 把物理内存全吞掉。
6.5 模型输出内容与预期不符
经常有人遇到“模型回答得不够好”的问题,尤其是知识库场景。总怀疑是不是部署错了。实际上,深度求索的开源模型在通用能力上没问题,但知识库问答效果差大概率出在检索环节。文档切分太大,导致检索出来的 chunk 里有效信息被稀释;或者你问的问题本身和文档里表述方式差异过大,检索不到相关内容。
解决办法是:用精确的词重新问一次,比如把“那个项目的负责人是谁”改成“项目负责人张三的联系方式是什么”。同时调整切分大小,AnythingLLM 里的 chunk size 调小一些,比如 300,重叠部分调多一些,会让检索结果更聚焦。
7. 部署完成后的一些实用扩展
模型跑通,知识库也能回答了,这套东西基本已经在自己电脑里“活”起来了。我再补充几个我实测过、能立刻提升使用体验的小技巧,你可以按需挑。
如果你想通过 API 调用本地 DeepSeek 模型,方便写脚本批量处理文档或者接入其他应用,Ollama 本身就是一个标准 OpenAI 风格接口。比如用 Python 访问,只需要请求http://localhost:11434/v1/chat/completions,模型名称填deepseek-r1即可。这样你写的自动化脚本就能直接享受本地模型能力,不需要额外装任何框架。
另外很多 Windows 用户还喜欢把 UI 做成开机自启:Chatbox 和 AnythingLLM 都有开机启动选项,Open WebUI 则要依赖 Docker Desktop 的自动启动。如果你和我一样机器开机时间比较长,建议把 Docker 的自启动打开,这样模型服务、UI、知识库是完整的,开机自动恢复。
还有一个容易被忽略的点:模型文件路径备份。Ollama 拉下来的模型文件都在OLLAMA_MODELS指定的目录里,目录体积很大。如果你换电脑或者重装系统,把这个目录整个拷贝到新机器的相同路径,再装好 Ollama,执行ollama list发现模型还在,就能少下载几十 GB 的内容。我重装系统时吃过教训,后来就一直把模型目录放在独立盘里。
这套方案整体上不挑机器、不强制 GPU、对 Windows 用户也算友好。只要按顺序走,遇到问题用上面的排查表对照处理,基本都能在两小时内跑通。至于 DeepSeek 更大尺寸的模型、更多 UI 玩法,等你熟悉之后再慢慢折腾也不迟。