基于DeepSeek(本地部署)和RAGFlow构建个人知识库

news2025/3/6 17:05:02

总结自视频(很强的小姐姐视频,讲解清晰明了):【知识科普】【纯本地化搭建】【不本地也行】DeepSeek + RAGFlow 构建个人知识库_哔哩哔哩_bilibili

1. 背景

deepseek官方网页版也虽然很强,能够满足绝大部分需求,但是存在局限。

(1)隐私问题,企业内部资料不方便上传,需本地部署;

(2)需定制回答格式和内容;

(3)需定义输入,以此限定问答的情景环境,且不需要每次问答都要上传大量文件;

(4)大模型幻觉问题;

2. RAG技术

RAG模型通过结合检索和生成两种机制,能够有效提升模型在特定任务上的表现。其核心思想是利用外部知识库中的相关信息,增强生成过程。具体来说,RAG模型首先通过检索模块从大规模知识库中检索出与输入相关的文档,然后将这些文档与输入一起输入到生成模块中,生成最终的输出。 

3.  RAG和模型微调的区别

微调是把知识学进模型了,RAG是临场问答时查阅资料再回答问题(边考边抄)。

对比维度RAG模型微调
核心思想结合检索(如公司内部资料或者网上实时资料)和生成,动态从外部知识库获取信息。在预训练模型基础上,用任务数据调整参数以适应特定任务。
主要组件检索模块 + 生成模块。单一模型(如BERT、GPT)。
适用任务知识密集型任务(如开放域问答、对话生成)。特定任务(如文本分类、命名实体识别)。
优点动态获取知识,生成结果更准确、丰富。快速适应任务,数据效率高,计算成本低。
缺点依赖外部知识库,计算成本高,实时性受限。知识局限于预训练数据,无法动态获取新知识,可能过拟合。

4. 本地部署全流程

  • 下载ollama,使用ollamap平台下载deepseek模型并本地运行;
  • 下载RAGFlow源代码和Docker,通过Docker本地部署RAGFlow;
  • 在RAGFlow中构建个人知识库并搭建对话系统。

4.1 ollama

Ollama平台一个专注于本地化运行和微调大型语言模型(LLMs)的工具,旨在让用户能够在自己的设备上高效地部署和管理大模型,而无需依赖云端服务。

Ollama平台的功能包括:模型下载与管理;模型运行与交互;模型微调;性能优化。

4.1.1 下载并安装Ollama平台软件

4.1.2 配置两个环境变量

OLLAMA_HOST: 0.0.0.0:11434

  • 作用是让Docker虚拟机里面的RAGFlow能够访问本地的Ollama;
  • 如果配置后的虚拟机无法访问Ollama,可能是本地防火墙拦截了11434端口;
  • 不想直接暴露11434端口,也可以改用SSH端口转发来实现;

OLLAMA_MODELS: 自定义位置

  • 作用是ollama默认将模型下载在c盘,模型太大,需另存。

设置环境变量后,需重启电脑。

4.1.3 Ollama平台下载模型deepseek-r1: 1.5b

打开ollama平台网站:Ollama

 复制下载命令行。

cmd执行下载命令。下载速度好快~

到这一步,完成了deepseek本地部署

5. 通过docker本地部署RAGFlow

docker负责管理环境依赖,RAGFlow源码可以运行在此环境中。

5.1 下载RAGFlow和Docker

cmd执行命令:git clone https://github.com/infiniflow/ragflow.git

docker下载连接:Docker: Accelerated Container Application Development

5.2 安装docker

如何和电脑硬件不匹配,安装时会报如下错误。 

 安装docker过程中会提醒重启电脑,重启后继续安装docker。

在cmd输入docker,如果界面是如下,则说明docker安装成功。

5.3 安装RAGFlow

修改前面clone下来的ragflow工程docker环境文件,使其能够下载完整版ragflow(包含embedding模块)

注释84行,打开87行,如下。 

保存后,cmd进入到ragflow/docker工程目录下,利用提前编译好的 Docker 镜像启动服务器。

执行命令安装启动ragflow:docker compose -f docker-compose.yml up -d

解决上面的问题,重启docker。

cmd进入docker安装目录:C:\Program Files\Docker\Docker

执行重启命令:DockerCli.exe -SwitchDaemon

 

重启cmd,再次执行docker命令。

如果出现上面这些红色报错,则多次执行上面的docker命令:docker compose -f docker-compose.yml up -d

如何尝试了5次还是不行,则修改成国内docker镜像源。

打开docker-desktop软件,点击设置。 

添加国内镜像。

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
     "https://docker.1ms.run"
  ]
}

停止所有正在运行的容器

docker compose -f docker-compose.yml down -v

重新启动容器

docker compose -f docker-compose.yml up -d 

 上面这四个依赖在缓慢下载中。(没使用VPN-,大概需要20分钟下载完毕)

docker-desktop中也出现了刚拉取下来的镜像环境

 执行成功后,下一次执行启动ragflow会很快。启动后默认是跑在localhost:80端口。进入页面。

注册登录ragflow。登陆后页面。

5.4 在RAGFlow构建个人知识库并实现对话问答

5.4.1 RAGFlow添加LLM模型

点击头像,找到模型提供商。

在模型提供商添加本地deepseek模型。

部署chat模型,不是embedding模型。查看本地模型名称。

ollama list

复制模型名称。

复制电脑ip地址。

 ollama默认监听端口号是11434。

5.4.2 RAGFlow系统模型设置

在ragflow系统设置设置刚才添加模型的其他参数。

因为我们下载是完整版的ragflow,自带了嵌入模型(large,中文)。

5.4.3 构建个人知识库

 添加后页面如下。

嵌入模型前面配置过了,这里还可以再改。解析方法可以选择解析简历、书籍、法律等,没啥特殊情况,可以简单选择general,其他参数是模型即可。

知识库建立好了。

添加知识库内的资料文档。并点击解析,解析会解析里面的文字,并通过embedding映射成高维向量。(这里资料文档是网上文档:员工手册(精简版)免费下载 - 人事星球,内部xxxx公司改成蟹宝王即可)。

5.4.4 构建定制助理

RAGFlow可以有很多知识库,知识库内有可以有很多很多知识文档,定制助理时可以有选择性的选取部分知识库作为参考资料。这样可以定制化助理的知识结构。

我这里前面只添加了一个知识库,所以只能选择一个知识库。 

 设置提示引擎(可以根据需求定制,这里使用默认设置)

回答的文本token数量可以设置大一点,不然回复字数太少。 

 构建助理成功,如下。

5.4.5 测试

新建聊天,进行测试。先声明知识库内的文档内容如下。看是否回答正确,助理会根据给她的知识库,并使用本地部署的deepseek-r1:1.5b模型,给出答案。

可以看到回复是完全正确的,并且会把引用标明出来, 推理和回复总时间是(5s左右,显卡是笔记本nvidia Quadro P620,非常低端)。

6. 只搭建个人知识库(不本地部署大模型)

即在线使用大模型。RAGFlow有自带的在线大模型。

接下来直接引用视频中小姐姐的话了。

“实现起来更简单,而且效果一般来说会更好。

步骤:

  1. 下载RAGFlow源代码和docker,通过docker本地部署RAGFlow(RAGFlow目前没有官方的网页版);
  2. 在RAGFlow中配置任意的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请apiKey);

一般来说,直接使用在线模型肯定更简单,因为你不需要本地部署大模型了;然后直接使用企业的在线模型,性能肯定更优越,因为你在本地部署的模型参数量肯定没发跟人家比; 但是,使用在线模型,你无法保证数据的绝对隐私性,同时很多企业api虽然有免费额度,但是用着用着就会开始收费了。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2310616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习工具的一天之(burp)

第一呢一定是先下载 【Java环境】:Java Downloads | Oracle 下来是burp的下载 Download Burp Suite Community Edition - PortSwigger 【下载方法二】关注的一个博主 【BurpSuite 安装激活使用详细上手教程 web安全测试工具】https://www.bilibili.com/video/BV…

2025-03-05 学习记录--C/C++-PTA 习题5-8 空心的数字金字塔

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、解题步骤 ⭐️ 下面以n5举例:🦋 第1步 🎀、外层循环(从1到…

vue+neo4j 四大名著知识图谱问答系统

编号: D039 视频 vueneo4j四大名著知识图谱问答系统 技术架构 vuedjangoneo4jmysql技术实现 功能模块图 问答:基于知识图谱检索、支持图多跳、显示推理路径 姜维的师傅的主公的臣是谁: 马谡 知识图谱:四大名著总共4个图谱 红楼梦图谱 …

【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别

1. 什么是智能体 将大语言模型作为一个推理引擎。给定一个任务, 智能体自动生成完成任务所需步骤, 执行相应动作(例如选择并调用工具), 直到任务完成。 2. 先定义工具:Tools 可以是一个函数或三方 API也…

基于eRDMA实测DeepSeek开源的3FS

DeepSeek昨天开源了3FS分布式文件系统, 通过180个存储节点提供了 6.6TiB/s的存储性能, 全面支持大模型的训练和推理的KVCache转存以及向量数据库等能力, 每个客户端节点支持40GB/s峰值吞吐用于KVCache查找. 发布后, 我们在阿里云ECS上进行了快速的复现, 并进行了性能测试, ECS…

Vue的简单入门 三

目录 侦听器 watch 注意 表单输入绑定 v-model v-model修饰符​编辑 lazy number Trim 模板引用 组件组成 组件引用三步走 组件的嵌套关系 header Main Aside Aritice Item App.vue组件引入三个子组件 组件的注册方式 全局注册组件的方法 (1) Vue 2 语…

指纹细节提取(Matlab实现)

指纹细节提取概述指纹作为人体生物特征识别领域中应用最为广泛的特征之一,具有独特性、稳定性和便利性。指纹细节特征对于指纹识别的准确性和可靠性起着关键作用。指纹细节提取,即从指纹图像中精确地提取出能够表征指纹唯一性的关键特征点,是…

STM32——串口通信 UART

一、基础配置 Universal Asynchronous Receiver Transmitter 异步,串行,全双工 TTL电平 :高电平1 低电平0 帧格式: 起始位1bit 数据位8bit 校验位1bit 终止位1bit NVIC Settings一栏使能接受中断。 之前有设置LCD,…

PHP fastadmin 学习

安装php环境安装mysql插件 修改 php.ini下载 phpstudy、fastadmin 错误 安装FastAdmin could not find driver 参考链接 安装插件 创建1.php <? phpinfo(); ?>运行 http://127.0.0.1/1.php 查看 POD 页面访问404 伪静态 Apache <IfModule mod_rewrite.c> O…

Autojs无线连接vscode方法

1.获得电脑的IP 在电脑的CMD界面输入 ipconfig 然后找到ipv4的那一行&#xff0c;后面的即是你的电脑IP地址 2.打开vscode的autojs服务 安装autojs插件 在vscode界面按下ctrlshiftp 输入autojs 找到 点击 之后打开手机上的autojs 之后输入刚刚电脑上的地址 可以看到vsc…

天津大学02-深度解读DeepSeek:部署、使用、安全【文末附下载链接】

大模型风险与不当用例——价值观错位 大模型与人类价值观、期望之间的不一致而导致的安全问题&#xff0c;包含&#xff1a;• 社会偏见&#xff08;Social Bias&#xff09;LLM在生成文本时强化对特定社会群体的刻板印象&#xff0c;例如将穆斯林与恐怖主义关联&#xff0c;或…

SPI驱动(三) -- SPI设备树处理过程

文章目录 参考资料&#xff1a;一、SPI设备树节点构成二、SPI设备树示例2.1 SPI控制器节点属性2.2 SPI设备节点属性 三、SPI设备树处理过程四、总结 参考资料&#xff1a; 内核头文件&#xff1a;include\linux\spi\spi.h内核文档&#xff1a;Documentation\devicetree\bindin…

MARL零样本协调之Fictitious Co-Play学习笔记

下列引用来自知乎作者Algernon 知乎link FCP作为ZSC领域两阶段训练方法的开创者 论文《Collaborating with Humans without Human Data》来自 NeurIPS 2021。这篇论文提出 Fictitious Co-Play (FCP) 来解决 ZSC 问题。论文认为&#xff0c;ZSC 的第一个重要问题是对称性&#x…

idea中的查看git历史记录,不显示详细信息

一、正常情况显示 1、idea中git查看history正常显示如下图&#xff1a; 二、非正常情况下显示 1、idea中git查看history&#xff0c;现在不显示提交的历史文件详细信息&#xff0c;如下图&#xff1a; 三、解决方式 1、找到如下窗口中画红色框的黑色线条&#xff0c;鼠标放在…

Redis——快速入门

目录 Redis简介 安装配置(Windows) GUI工具RedisInsight的使用 十大数据类型&#xff08;5基本5高级&#xff09; 字符串String 列表List 集合Set(S) 有序集合SortedSet(Z) 哈希Hash(H) 发布订阅模式 消息队列Stream(X) 地理空间Geospatial(GEO) HyperLogLog(PF) …

LLM 模型 Prompt 工程

目录 1、Prompt 基础概念 2、Prompt 主要构成 3、Prompt 相关技术 3.1、思维链 3.2、自洽性 3.3、思维树 1、Prompt 基础概念 Prompt 工程是通过设计和优化自然语言提示&#xff08;Prompt&#xff09;&#xff0c;引导LLM生成符合特定任务需求的输出的技术。其核心目标是…

Vue中实现大文件的切片并发下载和下载进度展示

Vue中实现大文件的切片下载 切片下载需要后端提供两个接口&#xff0c;第一个接口用来获取当前下载文件的总切片数&#xff0c;第二个接口用来获取具体某一个切片的内容。 界面展示 数据流展示 代码 接口 // 切片下载-获取文件的总切片数 export function getChunkDownload…

开源表单、投票、测评平台部署教程

填鸭表单联合宝塔面板深度定制,自宝塔面板 9.2 版本开始,在宝塔面板-软件商店中可以一键部署填鸭表单系统。 简单操作即可拥有属于自己的表单问卷系统,快速赋能业务。即使小白用户也能轻松上手。 社区版体验地址:https://demo.tduckapp.com/home 前端项目地址: tduck-fro…

GaussDB性能调优技术指南

​一、性能调优核心目标 ​降低响应时间&#xff1a;缩短单次查询或事务的处理时间&#xff08;如从秒级优化到毫秒级&#xff09;。 ​提高吞吐量&#xff1a;支撑更高并发请求&#xff08;如从千次/秒提升到百万次/秒&#xff09;。 ​资源高效利用&#xff1a;减少 CPU、…

【后端开发】go-zero微服务框架实践(goland框架对比,go-zero开发实践,文件上传问题优化等等)

【后端开发】go-zero微服务框架实践&#xff08;goland框架对比&#xff0c;go-zero开发实践&#xff0c;文件上传问题优化等&#xff09; 文章目录 1、go框架对比介绍2、go-zero 微服务开发实践3、go-zero 文件上传问题优化 1、go框架对比介绍 国内开源goland框架对比 1 go-…