视频加载失败

用 DeepSeek + RAGFlow 本地化部署个人知识库

2408 字
12 分钟
用 DeepSeek + RAGFlow 本地化部署个人知识库

用 DeepSeek + RAGFlow 本地化部署个人知识库#

直接在网页版大模型里提问有个根本局限:它不知道你的私有资料。举个例子,假设你有一份《员工服务规范》,里面写了遇到”一车客户”该怎么接待;你去问普通大模型时,它没见过这份规范,只能凭训练数据瞎猜,给一个看似合理、实则不对的答案。本文讲怎么在自己电脑上跑一套”只认你文档”的问答系统:用 Ollama 本地运行 DeepSeek 对话模型,用 RAGFlow 搭建知识库,两者结合实现纯本地化、保护隐私的私有问答。

一、为什么不直接用网页版#

网页版大模型确实好用,但碰到”基于我的资料回答”这类需求有三个硬伤:

  1. 隐私:你联网提问、上传文件,数据都会送到对方服务器,涉密文档不能这么干。
  2. 数量限制:网页版附件上传有数量和大小限制,而解析文件要额外算力,想一次塞进几百份文档建知识库,往往不现实,付费也未必解决。
  3. 附件很别扭:每开一个新对话都得重新上传附件,想增删改附件也不方便。

网页版解决不了两件事:绝对的隐私保护和个性化的长期知识库。前者靠本地跑模型解决——请求不离开你的电脑;后者靠 RAG 技术解决。

二、先懂几个概念#

RAG vs 微调#

让大模型记住你的知识,传统办法是微调(Fine-tune):在预训练模型上再用你的数据接着训练。这相当于”考前复习”,模型把知识背下来再答题。问题是本地微调一个大模型成本极高,而小模型微调效果又差。

另一条路是 RAG(Retrieval-Augmented Generation,检索增强生成):相当于”开卷考试”。模型本身没背你的知识,但每次回答前,系统先从你的资料库里检索出和问题相关的段落,把这些段落连同问题一起喂给模型,让它”看着资料”回答。RAG 分三步:检索(从知识库找相关内容)→ 增强(把检索到的内容拼进上下文)→ 生成(模型结合资料给出答案)。

实践证明,“本地跑一个蒸馏过的小模型 + RAG 针对性检索”,对个人和小团队是性价比很高的方案。

为什么还要一个 embedding 模型#

检索的前提是”机器知道哪段文字和问题最相关”。但自然语言没法直接算相似度——机器怎么知道”蟹堡王”和”比奇堡”很近、却和”深度学习”很远?

这就需要 embedding(嵌入)模型:它把一段文本转换成一串高维向量,语义相近的文字会被映射到相近的向量位置。之后用余弦相似度(cosine similarity,衡量两个向量方向接近程度)做匹配。可以理解成:上传并解析知识库后,系统给每个小文段生成一个”指纹”;你的问题也生成一个指纹,系统拿这个指纹去指纹库里比对,找出最像的几段,再交给对话模型。

顺带解释了一个常见现象:为什么网页版聊天免费,上传文件就要收费?因为文件要抽文字、表格、图片,逐段做 embedding,图片还要生成关键词,这些都要存储和算力。

两类模型别搞混#

  • chat 模型:负责对话和生成,如 DeepSeek、通义千问、豆包。
  • embedding 模型:专门负责把文本转成向量,不负责聊天。

部署时这两类都要配。

三、部署总览(三步)#

  1. 用 Ollama 把 DeepSeek 模型下载到本地运行。
  2. 用 Docker 部署开源框架 RAGFlow。
  3. 在 RAGFlow 里接入本地模型、建知识库、做问答。

四、第一步:Ollama 跑 DeepSeek#

Ollama 是一个本地运行和管理大模型的工具,相当于一个本地模型仓库。到其官网下载对应系统的安装包。

配两个环境变量(关键)#

RAGFlow 稍后会跑在 Docker(一个”封装好的小电脑”,把所需依赖全部装好,省去自己配数据库的麻烦)里。默认 Ollama 只允许本机(localhost)访问,Docker 里的容器连不上它,所以要改两个 Windows 环境变量(设置 → 系统 → 关于/高级系统设置 → 环境变量 → 新建):

  • OLLAMA_HOST,值设为 0.0.0.0:11434:让 Ollama 监听所有网卡,Docker 才能访问。若仍不通,检查系统防火墙是否放行 11434 端口;只想给本机容器用、不想暴露端口,可用 SSH 端口转发代替。
  • OLLAMA_MODELS:模型动辄几个 G 到几十个 G,把模型下载目录改到空间充足的盘。

改完必须重启电脑,新位置才会生效。

拉取模型#

在 Ollama 模型库选模型。完整的 DeepSeek 参数量极大(数百 B、上百 GB),个人电脑带不动,建议从小的试起:DeepSeek-R1 的 1.5B 版本先跑通;有外接显卡可试 14B、32B,32B 效果已相当不错。

打开命令行(Win + R 输入 cmd),运行:

ollama run deepseek-r1:1.5b

首次会自动下载,完成后它会进入交互状态。随便发一句话,能正常回复就说明本地模型就绪。后续可用 ollama list 查看已下载模型。

五、第二步:Docker 部署 RAGFlow#

  1. 从 RAGFlow 的 GitHub 仓库下载源码(git clone 或直接 Download ZIP 解压均可)。
  2. 安装 Docker Desktop 并确认命令行里 docker 可用。首次拉镜像慢属正常;拉不动时配置国内镜像加速器。
  3. 进入源码的 docker 目录,打开环境配置文件,把”轻量版”那一行注释掉、把”完整版”那一行取消注释(完整版自带 embedding 模型,省去单独再装一个嵌入模型的麻烦;具体行号以你下载版本的 README 为准)。
  4. 在该目录打开命令行,用 Docker Compose 启动:
docker compose up -d

首次会拉取镜像并启动,耗时较长。成功后在浏览器访问 http://localhost(默认 80 端口),注册登录即进入 RAGFlow。

六、第三步:接入模型并建知识库#

添加本地 chat 模型#

在”模型提供商”里添加 Ollama:

  • 模型类型:选 chat(聊天模型),不要选 embedding。
  • 模型名:严格照抄本地模型名,可用 ollama list 确认,例如 deepseek-r1:1.5b。
  • Base URL(请求地址):填 http://本机IP:11434。本机 IP 在命令行用 ipconfig 查 IPv4 地址;端口即前面的 11434。
  • 最大 token 数随意填(本地模型不消耗 API 配额)。

设置默认模型#

在”系统模型设置”里:聊天模型选刚接入的 deepseek-r1:1.5b;嵌入模型选 RAGFlow 完整版自带的中文模型(large 版本效果优于 small)。

建立知识库#

新建知识库,语言选中文,嵌入模型沿用默认,解析方式选 general 即可(书籍、论文、简历等有专门解析方法,按资料类型再切换)。

上传文档后,一定要点击”解析”——不解析,模型就无法理解里面的文字。解析过程会抽取段落并做 embedding。

建立助手并提问#

新建一个助手,绑定刚建的知识库。提示引擎有个细节:默认规则是”知识库里找不到答案就说不知道”;如果你希望模型在资料不足时也能用自身能力回答,就把这段约束提示词删掉或改写。最大 token 数调大一些,否则回答会很短。

之后和助手对话,回答会引用你文档里的具体段落,并标注出处——这就实现了”基于私有资料”的问答。

七、不想本地跑模型?用在线 API#

如果你只是想快速拥有一个知识库、不想折腾本地模型,可以跳过第四步,但仍需自己跑 RAGFlow(它目前没有官方网页版)。区别在于:在 RAGFlow 的模型提供商里,不接本地 Ollama,而是直接填各厂商提供的 API Key(一串用于识别身份、限流计费的密钥,在通义千问、DeepSeek 等平台的 API 页面申请),把在线的 chat 模型和 embedding 模型接进来。

两种方式怎么选:

维度本地部署(Ollama + DeepSeek)在线 API
部署成本要装 Ollama、Docker,吃本机硬件几乎零部署,填 Key 即可
性能受限于本机,小模型能力有限模型更大更强
隐私请求不离开本机,适合涉密文档数据会发到对方服务器
费用一次性硬件成本,后续免费有免费额度,用完按量计费

结论:个人学习、非敏感资料,在线 API 更省事;企业/涉密文档、要求绝对隐私,走本地部署。无论哪种方式,“建长期知识库 + 让模型据此回答”的整体流程是一样的。

八、小结#

这条链路的本质是:Ollama 负责在本地跑对话模型,RAGFlow 负责解析文档、做向量检索、组织问答。隐私靠本地模型保证,知识准确性靠 RAG 检索你自己的文档保证。模型版本、RAGFlow 的配置项与端口会随版本变化,实操时以各自官方文档为准。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
用 DeepSeek + RAGFlow 本地化部署个人知识库
https://blog.youzhiqing.com/posts/deepseek-ragflow-local-knowledge-base/
作者
莜之箐
发布于
2026-09-22
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
莜之箐
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
15
分类
7
标签
50
总字数
33,237
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.3
文章许可
CC BY-NC-SA 4.0