DeepSeek搭建的本地知识库
为什么不直接使用网页版DeepSeek?
- 我们的需求:绝对的隐私保护和个性化知识库构建
- 场景:如果你希望大模型能根据你们企业的规章制度来回答问题,那么你一般需要上传企业规章制度的附件;但你仍然可能面临的问题有:
1.数据隐私问题:联网使用大模型数据隐私性无法得到绝对保证;
2.上传文件的限制问题:网页版AI对于文件上传的数量、大小一般有限制并且通常需要付费;
3.仅通过附件扩展上下文功能有限:每次在新对话中提问相关问题时,仍需要重新上传附件;修改删除对话中已有的附件困难;
隐私保护
- 通过对话大模型(如DeepSeek)的本地部署解决隐私问题;
- 个性化知识库构建
使用RAG技术 ( (Retrieval-Augmented Generation,检索增强生成)构建个人知识库。为此我们需要:
1.本地部署RAG技术所需要的开源框架RAGFlow;
- 本地部署Embedding大模型 型((或者直接部署自带Embedding模型的RAGFlow版本)
为什么要使用RAG技术?RAG和模型微调的区别?
- ·大模型的幻觉问题;
- 微调技术和RAG技术:
微调:在已有的预训练模型基础上,再结合特定任务的数据集进一步对其进行训练,使得模型在这一领域中表现更
好(考前复习);
RAG:在生成回答之前,通过信息检索从外部知识库中查找与问题相关的知识,增强生成过程中的信息来源,从
而提升生成的质量和准确性(考试带小抄)。
共同点:都是为了赋予模型某个领域的特定知识,解决大模型的幻觉问题。
RAG (Retrieval-Augmented Generation)的原理:
检索(Retrieval):当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容。
增强(Augmentation):系统将检索到的信息与用户的输入结合,扩展模型的上下文。然后再传给生成模型(也
就是Deepseek);
生成(Generation):生成模型基于增强后的输入生成最终的回答。由于这一回答参考了外部知识库中的内容,
因此更加准确可读。
检索(Retrieval)的详细过程:
- 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API等等。
- 通过 Embedding(嵌入)模型,对知识库文件进行解析:Embedding 的主要作用是将自然语言转化为机器可以理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似度关系);
- 通过 Embedding(嵌入)模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量。
- 拿用户的提问去匹配本地知识库:使用这个用户输入生成的这个高纬向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些相似度度量(如余弦相似度)去判断相似度。
模型的分类:Chat模型、Embedding模型;
简而言之:Embedding模型是用来对你上传的附件进行解析的;
本地部署全流程
配置环境变量
下载ollama 下载模型deepseek-r1:1.5b,复制红框右侧的命令行,在windows控制台运行。
在cmd命令行中运行;当出现send message说明它已经启动了。此时随便提问,如能回答说明下载的没问题。
下载RAGflow源代码和docker,通过docker本地部署RAGflow;
下载RAGflow源代码
下载Docker
配置Docker中的.env环境,否则的话就没有Embedding功能;
具体可以参考infiniflow文档
出现以下界面说明构建成功了。可以建一个帐号进行登录;此时RAGflow就成功启动了。
在RAGflow中构建个人知识库并实现基于个人知识库的对话问答
1.docker成功启动后,浏览器输入localhost:80来访问RAGFlow;
2.在“模型提供商” “中添加我们本地部署的 deepseek-r1:1.5b模型;
3.在“系统模型设置”中配置Chat模型(deepseek-r1:1.5b)和Embedding模型(用RAGFlow自带的即可)
4.创建知识库,上传文件,解析文件;
5.创建聊天助手(注意prompt和tokens的配置);
6.开始对话;
添加deepseek模型
在系统模型设置中添加模型;
添加一个本地知识库,一定要点击解析,否则的话是不工作的。
只想迅速搭建个人知识库,可以不本地部署吗
一当然可以!这样实现起来更简单,而且效果一般来说会更好;
具体步骤:
1.下载RAGFlow源代码和docker,通过docker本地部署RAGFlow(RAGFlow目前没有官方的网页版)
2.在RAGFlow中配置任意的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请apiKey);
优点:
- 不用本地部署大模型,简单易操作;
- 企业大模型性能一般更优越;
缺点:
- 隐私安全问题;
- 调用企业大模型API的成本;