隐私优先:DeepSeek+RAGFlow本地化部署,手把手构建个人知识库

概览

1、为什么不直接使用网页版DeepSeek?

2、如何实现网页版DeepSeek不能实现的需求?

3、为什么要使用RAG技术?RAG和模型微调的区别?

4、什么是Embedding?为什么需要“Embedding模型”?

5、本地部署全流程

6、只想迅速搭建个人知识库,可以不本地部署吗?

前言

DeepSeek 三种模式对比

• 基础模型(V3):通用模型(2024.12),高效便捷,适用于绝大多数任务,“规范性”任务

V 系列被定位为“更偏对话与内容生成”的通用模型,对聊天机器人、写作辅助、营销文案生成、多语种翻译等场景具有较好适配度; 
相较于注重严谨思维的 R 系列,V3 等在语言风格多样性、回答灵活度上更具优势。

• 深度思考(R1):推理模型,复杂推理和深度分析任务,如数理逻辑推理和编程代码,“开放性”任务

R 系列与 V 系列形成互补:V 系列适合一般对话和内容生成,R 系列在复杂、多步骤推理场景表现更优。
目前 R 系列主要以 R1 为代表,后续 DeepSeek 还计划推出 R2、R3 等,进一步提升跨学科推理(如医疗诊断、金融分析)的准确率与知识内在关联度。

• 联网搜索:RAG(检索增强生成),知识库更新至2024年7月 

一、为什么不直接使用网页版DeepSeek?

  • 我们的需求:绝对的隐私保护和个性化知识库构建
  • 场景:比如如果你希望大模型能根据你们企业的规章制度来回答问题,那么首先你肯定需要将这些规章制度或者模型作为附件上传,但你仍然可能面临一些别的问题:
  1. 一个是数据隐私问题;联网使用大模型,所有数据均会上传到DeepSeek服务器,数据隐私性无法得到保证;
  2. 第二个是上传文件的限制问题;一般来说网页版AI对于文件上传数量是有限制的,因为解析附件需要额外的算力;即使你是付费用户,有时你想要上传的文件不是一个两个,而是几百个文件,也就是一个专业领域的知识库,模型同样可能无力支持;
  3. 第三个问题是上传文件附件方式使用起来繁琐:仅仅只是将文件作为附件加入对话上下文,每一次想要让模型根据这些附件回答问题的时候,都需要重新上传附件;想要新增、删除、修改已有的附件,同样也是很难实现的;

二、如何实现网页版DeepSeek不能实现的需求?

  • 隐私保护

通过对话大模型(如DeepSeek)的本地部署解决隐私问题;

  • 个性化知识库构建

使用RAG技术(Retrieval-Augmented Generation,检索增强生成)构建个人知识库。为此我们需要:

  1. 本地部署RAG技术所需要的开源框架RAGFlow;
  2. 本地部署Embedding大模型(或者直接部署自带Embedding模型的RAGFlow版本);

 

三、为什么要使用RAG技术?RAG和模型微调的区别?

  • 大模型不知道你的这些私有知识,当它回答自己不知道的问题时会出现“幻觉”问题;
  • 微调技术和RAG技术的区别:
  1. 微调:在已有的预训练模型基础上,再结合特定任务的数据集进一步对其进行训练,使得模型在这一领域中表现更好(微调是考前复习,模型通过训练,消化吸收了这些知识然后给你回复);
  2. RAG:在生成回答之前,通过信息检索从外部知识库中查找与问题相关的知识,增强生成过程中的信息来源,从而提升生成的质量和准确性。(RAG是开卷考试,模型看到你的问题,开始翻你的知识库,以实时生成更准确的答案);
  • RAG(Retrieval-Augmented Generation)技术原理:
  1. 检索(Retrieval):当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容。
  2. 增强(Augmentation):系统将检索到的信息与用户的输入结合,扩展模型的上下文。这让生成模型(也就是Deepseek)可以利用外部知识,使生成的答案更准确和丰富。
  3. 生成(Generation):生成模型基于增强后的输入生成最终的回答。它结合用户输入和检索到的信息,生成符合逻辑、准确且可读的文本内容。

 四、什么是Embedding?为什么除了DeepSeek、RAGFlow外我还需要“Embedding模型”?

  • 检索(Retrieval):当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容。
  1. 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API 等等。这样,RAG 不仅依赖于模型本身的内在的、通过训练得到的知识,还能实时调用外部的信息进行补充。我们要构建的就是一个基于本地文件的外部知识库;
  2. 通过 embedding 模型,对知识库文件进行解析:文本是由自然语言组成的,这种格式不利于机器直接计算相似度。embedding 模型要做的,就是将自然语言转化为高维向量,然后通过向量来捕捉到单词或句子背后的语义信息。比如,“蟹堡王”“比奇堡”“深度学习”三个词,embedding 会将蟹堡王和比奇堡映射到相近的向量空间中;而深度学习会被映射到离他们较远的向量空间中,这样通过embeding,机器就可以学习到自然语言之间的深度语义关系,并且依此计算出不同文本之间的相似关系了;
  3. 通过 embedding 模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量。
  4. 拿用户的提问去匹配本地知识库:使用这个用户输入生成的这个高纬向量,去查询知识库中有无相关的文档片段。系统会利用某些相似度度量(如余弦相似度)去判断这个相似度。这一整个过程可以理解为,上传并解析了知识库之后,相当于给知识库中每一个小的文段都生成了一个指纹;然后用户输入问题之后,这个问题同样也会生成一个独一无二的指纹,接着RAGFLOW系统就会拿着用户输入的这个指纹,在指纹库也就是知识库中匹配,找到相似的指纹,然后把将检索到的这些相关文段与用户的输入结合,扩展模型的上下文,再喂给对话模型DeepSeek。
  • 模型的分类:Chat模型、Embedding模型;
     

五、本地部署全流程

  1. 下载ollama,通过ollama将DeepSeek模型下载到本地运行;
  2. 下载RAGflow源代码和Docker,通过Docker来本地部署RAGflow;
  3. 在RAGflow中构建个人知识库并实现基于个人知识库的对话问答; 

 1.下载ollama,通过ollama将DeepSeek和Embedding模型都下载到本地;

  • 下载ollama平台

ollama是一个用于本地运行和管理大语言模型(LLM)的工具。

  • 配置环境变量

1、OLLAMA_HOST=0.0.0.0:11434:让虚拟机里的程序能访问本机上运行的 Ollama 模型

  •          RAGFlow是部署在虚拟机里的,默认情况下,Ollama 只能允许本机访问(监听 localhost:11434),其他设备(比如虚拟机)是无法连接的。
  •          可能存在的问题:如果配置后虚拟机无法访问,可能是你的本机防火墙拦截了端口 11434,需要放行它。
  •           如果你的 Ollama 只想给自己的虚拟机使用,而不想直接暴露 11434 端口让任何设备都能访问,你可以通过SSH 端口转发来实现;

2、OLLAMA_MODELS :默认模型下载到C盘,如果希望下载到其他盘可以配置;
3、注意配置之后保险起见一定要重启电脑;

  • 通过ollama下载模型deepseek-r1:32b

 ollama run deepseek-r1:32b;

2.下载RAGflow源代码和docker,通过docker本地部署RAGflow; 

  • 下载RAGflow源代码
  • 下载Docker
  1. Docker 镜像是一个封装好的环境,它包含了所有运行 RAGFlow 所需的依赖、库和配置。
  2. 如果安装遇到踩坑,可以自行搜索一下报错或者问一下gpt;
  3. 如果镜像拉不下来,可以配置docker的镜像源

3. 在RAGflow中构建个人知识库并实现基于个人知识库的对话问答; 

  • 在RAGflow中进行相关配置、上传文件构建个人知识库、调用本地部署的Embedding解析处理上传的文件、调用本地部署的DeepSeek根据文件内容生成回答
  1. 在“模型提供商”中添加我们本地部署的deepseek模型;
  2. 在“系统模型设置”中配置Chat模型(deepseek)和Embedding模型(RAGFlow自带的);
  3. 创建知识库,上传文件,解析文件;
  4. 创建聊天助手(注意prompt和tokens的配置);
  5. 开始对话;

六、只想迅速搭建个人知识库,可以不本地部署吗? 

  • ——当然可以!这样实现起来更简单,而且效果一般来说会更好;
  • 具体步骤:
  1. 下载RAGFlow源代码和docker,通过docker本地部署RAGFlow(RAGFlow目前没有官方的网页版);
  2. 在RAGFlow中配置任意的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请apiKey);

一般来说,直接使用在线模型肯定更简单,因为你不需要本地部署大模型了;然后直接使用企业的在线模型,性能肯定更优越,因为你在本地部署的模型参数量肯定没发跟人家比;

但是,使用在线模型,你无法保证数据的绝对隐私性,同时很多企业api虽然有免费额度,但是用着用着就会开始收费了;

### RAGFlowDeepSeek 使用教程及案例 #### 1. 技术概述 RAGFlow、Ollama以及DeepSeek构成了大模型应用开发的强大组合。这一组合不仅简化了环境搭建过程,还提供了丰富的典型应用场景和性能优化方案[^1]。 #### 2. 环境搭建 为了快速上手并体验这些工具的功能,可以按照如下方法来设置工作环境: - **安装 Docker**:确保计算机已安装 Docker,这是运行容器化应用程序的基础。 - **拉取镜像与启动服务** ```bash docker pull infiniflow/ragflow:dev docker compose up ragflow -d ``` 上述命令会下载最新的 `RAGFlow` 开发版本,并以后台模式启动该服务[^2]。 #### 3. 实战操作指南 ##### 3.1 数据准备 对于想要构建基于文档检索的应用程序来说,准备好待索引的数据集至关重要。这可能包括但不限于PDF文件、网页抓取的内容或是任何其他形式的结构化或非结构化的文本数据。 ##### 3.2 配置参数调整 根据实际需求修改配置项,比如设定最大查询长度、返回结果数量等。这部分通常涉及到编辑特定的JSON/YAML格式配置文件。 ##### 3.3 应用场景实例 考虑这样一个例子——企业内部的知识管理系统。通过集成RAGFlow作为后端处理引擎,配合前端界面展示搜索结果;而利用DeepSeek强大的自然语言理解能力,则能实现更精准的信息匹配和服务推荐功能。 ```python from deepseek import create_index, search_query # 创建索引 create_index('path/to/documents') # 执行查询 results = search_query("如何提高团队效率?") for result in results: print(f"Title: {result['title']}, Content Snippet: {result['snippet']}") ``` 此代码片段展示了如何使用Python客户端API创建文档索引并向其发起查询请求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AllenGd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值