Windows 11 本地知识库部署:DeepSeek + Dify + Ollama 避坑指南 简介这份PDF资料面向希望零基础搭建私有AI知识库的开发者和AI爱好者围绕DeepSeek大模型与Dify开源平台给出从系统环境变量配置、Ollama安装、deepseek-r1与bge-m3模型拉取到Docker部署、Dify配置及知识库创建的完整本地化落地路径帮助读者摆脱对云端服务的依赖在个人电脑上跑通一套可对话、可检索的知识库系统。资源包共1个PDF文件约1.47MB以图文步骤形式记录各环节的界面操作与命令输入便于对照执行。目前已有2345人学习关注。内容覆盖环境变量设置、模型选择与拉取、镜像加速配置、.env参数调整及聊天助手与知识库的关联使用并附有ollama list等验证命令可帮助读者快速复现部署流程、理解各组件协作关系适合作为本地大模型应用入门的实操参考。1. 从一次“模型下完了却用不上”的翻车说起Windows 11 上想跑一套本地知识库DeepSeek Dify 这套组合大概是目前门槛最低、资料最全的一条路Ollama 管模型Docker 管容器Dify 管应用和知识库全程不碰一行后端代码。但门槛低不等于不会翻车。我见过最常见的场景是Ollama 装好了deepseek-r1:8b也拉下来了命令行里聊得挺顺结果一进 Dify 添加模型就报连接失败——模型明明在本地应用就是够不着。问题往往不在模型而在环境变量、容器网络和.env配置这三处中的某一处。这篇笔记按我实际装机的顺序走一遍先定环境变量和版本再装 Ollama 拉模型然后装 Docker 配镜像接着部署 Dify 并打通 Ollama最后落到“怎么验证真的跑通了”。适合第一次在 Windows 上做本地大模型部署的开发者也适合装过一半卡在模型对接环节、想回头排查的人。装之前先把磁盘腾出至少 30GB8B 模型加 embedding 模型加 Docker 镜像空间消耗比想象中大。2. 装前定环境Windows 11 变量与版本取舍2.1 先把 OLLAMA_MODELS 定下来Ollama 默认把模型放在系统盘用户目录下一个 8B 模型动辄四五个 GB几个模型下来 C 盘就红了。所以第一步不是装软件是改模型存储路径。右击“此电脑”→“属性”→“高级系统设置”→“环境变量”在“系统变量”里新建变量名变量值示例说明OLLAMA_MODELSE:\Ai\Ollama3模型实际落盘目录提前建好空文件夹值里的路径必须是已存在的文件夹Ollama 不会帮你创建父目录。设完重启系统这一步别省——环境变量对已运行的服务不生效重启是最省事的办法。我一般会在设完后打开一个新的 cmd 窗口执行echo %OLLAMA_MODELS%能回显出路径才算数。2.2 版本选择模型按显存挑不按心情挑DeepSeek-R1 在 Ollama 上有多个尺寸选哪个看机器。常见做法是按显存和内存对号入座模型标签大致体积适用机器deepseek-r1:1.5b约 1.1GB8GB 内存、无独显的轻薄本deepseek-r1:7b / 8b约 4.7GB16GB 内存、6GB 以上显存deepseek-r1:14b约 9GB32GB 内存、12GB 显存deepseek-r1:32b约 20GB64GB 内存、24GB 显存原文用的是 8b这也是大多数 16GB 内存机器的甜点档。embedding 模型固定用bge-m3它负责把知识库文档转成向量和对话模型是两回事两个都得拉。Docker Desktop 走官网 Windows AMD64 版本即可Dify 用 GitHub 主分支压缩包解压后目录名统一改成dify后面所有路径都基于它。提示模型目录、Docker 镜像目录、Dify 解压目录尽量放同一个数据盘迁移和备份时少跨盘折腾。3. 装 Ollama 并拉模型两条命令的先后顺序3.1 安装与验证服务从 Ollama 官网下载OllamaSetup.exe双击后点 Install装完托盘会出现 Ollama 图标。装完先别急着拉模型开一个 cmd 验证服务在跑ollama --version ollama list第一条回显版本号第二条即使为空也说明服务通了。如果ollama list报连接拒绝多半是托盘程序没起来手动启动一次 Ollama 再试。这里有个容易忽略的点装完 Ollama 后要重新开一个命令行窗口旧窗口继承的是安装前的环境变量读不到刚设的OLLAMA_MODELS。3.2 拉对话模型和 embedding 模型# 拉取对话模型8b 对应约 4.7GB 下载量 ollama run deepseek-r1:8b # 进入对话后随便问一句验证退出用 CtrlC 再 CtrlD # 拉取向量模型知识库检索依赖它 ollama pull bge-m3 # 确认两个模型都在列表里 ollama listollama run第一次执行会先下载再进入交互下载进度条走完出现提示符就说明模型可用了。测试一句“你好”能正常回复按CtrlC中断生成、再按CtrlD退出交互。ollama pull只下载不进入对话适合 embedding 这类不需要手动聊的模型。最后ollama list应该能看到deepseek-r1:8b和bge-m3两行NAME 列的名字后面配 Dify 时要一字不差地抄过去。注意拉模型过程中断网或关窗口重新执行同一条命令会断点续传不用删了重来。4. 装 Docker 并配镜像让拉取不再卡住4.1 安装与存储位置从 Docker 官网下载 Docker Desktop for Windows AMD64双击安装装完重启一次。首次启动进入 Settings → Resources → Advanced把 Disk image location 改到数据盘例如E:\Docker\DockerDesktopWSL。这个设置决定镜像和容器数据放哪默认在 C 盘Dify 一套镜像拉下来好几个 GB不改迟早爆盘。改完点 Apply restartDocker 会重启并迁移数据等托盘图标变绿再继续。4.2 配置镜像加速进入 Settings → Docker Engine把配置改成下面这样再 Apply restart{ builder: { gc: { defaultKeepStorage: 20GB, enabled: true } }, experimental: false, registry-mirrors: [https://hub.rat.dev] }registry-mirrors是拉取 Docker Hub 镜像时走的加速地址国内网络下拉 Dify 依赖的十几个镜像不配这一项经常卡在 pulling 不动。defaultKeepStorage控制构建缓存上限20GB 对本地部署够用机器紧张可以调小。改完在终端执行docker version和docker compose version两条都有输出才说明 Docker 和 Compose 插件都就绪——Dify 用的是docker compose新语法不是老的docker-compose。5. 部署 Dify 并打通 Ollama.env 里那两行是关键5.1 准备 .env 文件把 Dify 压缩包解压到数据盘并命名为dify进入dify\docker目录把.env.example复制一份改名为.env。Windows 资源管理器默认不显示已知扩展名改名时容易变成.env.txt建议在终端里用命令改cd E:\dify\docker copy .env.example .env然后用记事本打开.env拉到文件末尾另起一行追加# 允许 Dify 使用自定义模型供应商 CUSTOM_MODEL_ENABLEDtrue # 指向宿主机上的 Ollama 服务容器内访问宿主机用这个特殊域名 OLLAMA_API_BASE_URLhttp://host.docker.internal:11434CUSTOM_MODEL_ENABLEDtrue打开后模型供应商列表里才会出现 Ollama 这一项。host.docker.internal是 Docker Desktop 提供的宿主机别名容器里的 Dify 靠它访问跑在 Windows 上的 Ollama直接写127.0.0.1在容器里指向的是容器自己必然连不上。原文这里写的是不带http://的形式实际配置时补全协议头更稳妥避免解析歧义。5.2 启动容器并等健康检查# 在 dify\docker 目录下执行-d 表示后台运行 docker compose up -d # 查看容器状态等所有服务变成 running 或 healthy docker compose ps第一次执行会拉取 api、worker、web、db、redis、weaviate 等一串镜像耗时取决于网络中途别关窗口。docker compose ps里 db 和 redis 通常很快 healthyapi 和 worker 要等初始化全部起来一般两三分钟。如果某个容器反复重启用docker compose logs api看日志最常见的是端口 80 被占用或.env里有语法错误。5.3 初始化管理员并接入两个模型浏览器打开http://127.0.0.1/install出现设置管理员账号的页面就说明 Dify 起来了。设好邮箱密码登录进入右上角头像 → 设置 → 模型供应商找到 Ollama 点“添加模型”。先加 LLM模型名称填deepseek-r1:8b和ollama list里完全一致基础 URL 填http://host.docker.internal:11434模型类型选 LLM其余默认保存。再加 Text Embedding模型名称填bge-m3基础 URL 同上类型选 Text Embedding保存。两个都保存成功、供应商卡片上出现模型条目模型这一层才算打通。提示模型名称多一个空格、少一个冒号都会导致保存后调用报 404直接从ollama list复制最稳。6. 避坑排查五个装完才发现的坑6.1 现象Dify 添加 Ollama 模型报连接失败原因.env里OLLAMA_API_BASE_URL写成了127.0.0.1:11434容器内回环地址指向容器自身。解决改成http://host.docker.internal:11434保存后执行docker compose up -d让 api 容器重建生效只重启不重建读不到新环境变量。6.2 现象模型列表里没有 Ollama 供应商原因.env没加CUSTOM_MODEL_ENABLEDtrue或加了但没重建容器。解决确认该行在.env末尾且无拼写错误执行docker compose down再docker compose up -d刷新页面重新进设置。6.3 现象C 盘空间持续下降模型却不在 C 盘原因OLLAMA_MODELS设了但没重启或 Ollama 服务在设变量前已启动模型仍写进默认目录。解决退出托盘 Ollama确认echo %OLLAMA_MODELS%有值后重启系统再重新拉模型已下到 C 盘的模型目录可手动删掉释放空间。6.4 现象docker compose up -d卡在 pulling 不动原因镜像加速未生效或加速地址不可用。解决确认 Docker Engine 配置里registry-mirrors已保存并 Apply restartdocker info输出里能看到 Mirrors 列表仍卡就换一个可用加速地址再试。6.5 现象知识库上传文档后检索不到内容原因embedding 模型没配或分段设置与文档类型不匹配。解决先在模型供应商里确认bge-m3保存成功再检查知识库创建时索引方式选了“高质量”、检索设置选了“向量检索”纯文本用通用分段即可表格密集的文档适当调大分段长度。7. 验证跑通从一条命令到一次真实问答装完不等于跑通我习惯按“模型层 → 容器层 → 应用层 → 知识库层”四步各验一次任何一层不过就停在那一层排查不往下走。模型层在 cmd 里执行ollama list确认deepseek-r1:8b和bge-m3都在再执行ollama run deepseek-r1:8b 用一句话说明什么是向量检索能出中文回答即模型可用。容器层在dify\docker目录执行docker compose ps重点看 api、worker、weaviate 三个是否 healthy任何一个 restarting 都先看日志。应用层打开http://127.0.0.1能进工作台、模型供应商里两个模型都显示已配置说明 Dify 到 Ollama 的链路通了。知识库层做一次端到端验证新建一个聊天助手应用进“知识库”→“创建知识库”→导入一份纯文本文件→分段选通用、索引选高质量、检索选向量检索→保存并处理等状态变成可用。回到应用在上下文里添加这个知识库然后问一个只有文档里才有的细节问题。回答里出现引用片段、点开能看到原文出处才算真正跑通。如果回答泛泛而谈不带引用多半是知识库没挂上或检索没命中回上一步查 embedding 配置。验证层命令或入口通过标准模型层ollama list两个模型名完整出现容器层docker compose ps核心服务 healthy应用层http://127.0.0.1模型供应商显示已配置知识库层应用内提问回答带引用且可溯源这套流程我后来每次重装都强制走一遍因为最容易出问题的从来不是安装本身而是“以为装好了”的那一步——模型名抄错一个字符、.env少一行、容器没重建表现都是“能用但不对”。把四层验证当成固定动作比事后翻日志省事得多。希望帮到你。本文还有配套的精品资源点击获取