DeepSeek本地部署Ollama+知识库,附3个报错解决

最近帮不少朋友在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盘很快就满了:

  1. 右键任务栏 Ollama 图标,退出 Ollama;
  2. 开始菜单搜索"编辑账户的环境变量";
  3. 新建用户变量:变量名 OLLAMA_MODELS,变量值 D:\ollama\models;
  4. 确定保存,再从开始菜单重新启动 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)。

首次打开页面会让你创建账号,首个注册的账号就是管理员,密码务必记好。

五、配置本地知识库

  1. 确认连接 :头像 → 设置 → 管理员(Admin)→ 外部连接,Ollama 地址为 http://localhost:11434(Docker 方式为 http://host.docker.internal:11434),左上角模型列表能看到 deepseek-r1:8b 即连接成功。
  2. 设置向量模型 :同一位置的"文档"页,嵌入模型引擎选 Ollama ,嵌入模型填 bge-m3,保存。如果之前已经上传过文档,改完需要点"重建索引"。
  3. 创建知识库:左侧 工作空间 → 知识库(Knowledge)→ 新建,填写名称和描述,上传 PDF、Word、TXT、Markdown 等文件,等待处理完成。
  4. 提问 :新建对话,选择 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,或者能运行但每秒只出几个字。处理顺序:

  1. ollama ps 看 PROCESSOR 列,nvidia-smi 看显存占用,关掉占显存的程序(游戏、其他模型);
  2. 按第三节表格换小一号模型,例如 14b 换 8b;
  3. 上下文长度不要盲目调太大,num_ctx 越大显存占用越高;
  4. 更新显卡驱动到 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 管文档。模型尺寸按显存选,上下文按需调大,大部分问题都能用本文的排查思路解决。

有部署或环境问题欢迎评论区留言,我会把高频问题整理成后续文章。 关注白泽软件开发,持续更新实战教程。

相关推荐
知几蜗牛1 小时前
工具还在跑,AI为什么还能继续说?看懂多模态异步事件流
人工智能
天天被压力1 小时前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·人工智能·python
天天被压力1 小时前
【Python 量化取数指南 #14】Python 清洗行情数据:复权停牌对齐,回测不翻车
java·人工智能·python
冬奇Lab1 小时前
LLM 自动化测试系列(04):Web UI 自动化——Midscene 的视觉驱动脚本化
人工智能·测试
Python私教1 小时前
Python环境配置:conda+PyCharm+换源,附6个坑
人工智能·python·pycharm
大白话AI1 小时前
揭秘 Auto Mode 安全分类器
人工智能
知几蜗牛1 小时前
模型后训练别一上来就凭感觉打分:奖励顺序比阶段数量更重要
人工智能
IT_陈寒1 小时前
JavaScript的this指向问题又让我加了个班
前端·人工智能·后端
冬奇Lab1 小时前
一天一个开源项目(第228篇):AX —— Google 开源的「Kubernetes for Agents」,用声明式 YAML 编排十亿级 Agent 任务
人工智能·开源·资讯