轻松搭建你的专属知识库:DeepSeek模型接入RAGFlow保姆级教程

RAGFlow整合DeepSeek,轻松搭建个人知识库!告别繁琐代码,快速实现智能问答。

原文标题:DeepSeek接入个人知识库,保姆级教程来了!

原文作者:数据派THU

冷月清谈:

本文提供了一个简明扼要的教程,指导用户如何使用RAGFlow框架将DeepSeek模型接入到个人知识库中。RAGFlow作为一款开源的检索增强生成引擎,旨在通过结合信息检索和生成式AI的优势,简化RAG系统的开发流程,使用户无需编写代码即可完成搭建和维护。教程详细介绍了RAGFlow的各项优势,包括深度文档理解、降低幻觉风险、兼容异构数据源、自动化工作流、高效性与成本优化以及精准性与可靠性。本地部署方面,文章给出了windows环境下的详细配置步骤和软件安装指南,包括Docker、Git和VSCode的安装和配置。同时,还介绍了如何通过修改配置文件和拉取Docker镜像来完成RAGFlow的安装。最后,通过简易的使用教程,指导用户配置DeepSeek模型服务、上传资料创建本地知识库,并进行对话交互。此外,文章还介绍了RAGFlow程序的启动与关闭方法,方便用户进行日常使用和维护。

怜星夜思:

1、RAGFlow 强调了零代码开发,这是否意味着它在定制化和深度优化方面有所妥协?对于有一定编程基础的用户来说,是否还有必要从头构建RAG系统?
2、文章中提到 RAGFlow 需要较高的电脑配置,那么在低配置的电脑上,有没有其他的替代方案或者优化策略,例如使用在线RAG服务?
3、文章中提到可以接入 DeepSeek 模型,那么 RAGFlow 在选择其他 LLM 模型(例如 GPT 系列、文心一言等)时,兼容性和配置上会有什么差异?

原文内容

本文约2200字,建议阅读5分钟
本文为你介绍DeepSeek接入个人知识库的教程。


这次带来 RAG 的小白应用教程:介绍如何通过 ragflow 框架把 DeepSeek 接入到自己的个人知识库中,当然其他模型也是类似,可以自由搭配。


先看效果:




ragflow 简介:


RAGFlow 是一款基于深度文档理解的开源检索增强生成(Retrieval-Augmented Generation,RAG)引擎,旨在通过结合信息检索和生成式 AI 的优势,解决现有技术在数据处理和生成答案方面的挑战。

作用


RAGFlow 广泛应用于需要动态生成内容且依赖外部知识库的场景,例如:

  • 智能客服:实时从企业知识库中检索相关信息,为客户提供准确、个性化的解答。
  • 文档生成与报告分析:从多个数据源中检索信息并生成结构化的文档或摘要,适合大规模内容管理。
  • 辅助诊断:医疗专业人员可以通过 RAGFlow 快速查找相关医学文献和病例资料,为诊断和治疗提供参考。
  • 文献综述:帮助学生和研究人员快速定位和分析相关的学术文献,高效完成文献综述的撰写。
  • 新闻报道与投资分析:记者和金融机构可以利用 RAGFlow 整合和提炼大量素材,生成新闻稿件或投资分析报告。

优势


  1. 深度文档理解:能够从复杂格式的非结构化数据中精准提取知识,支持多种文档格式(如 Word、PPT、Excel、PDF 等),并自动识别文档布局。
  2. 降低幻觉风险:提供清晰的关键引用来源,支持文本分块的可视化和人工干预,确保生成答案有据可依。
  3. 兼容异构数据源:无缝处理多种数据格式,整合不同来源的数据,为用户提供一站式的数据处理和问答体验。
  4. 自动化工作流:支持从个人应用到超大型企业的各类生态系统,提供易用的 API,便于快速集成到各类业务系统。
  5. 高效性与成本优化:通过动态优化流程,减少不必要的计算和查询次数,降低运行成本。
  6. 精准性与可靠性:检索和生成环节相辅相成,确保最终结果的准确性和可靠性。

RAGFlow 的这些特性和优势使其在信息检索和内容生成领域具有广泛的应用前景和显著的竞争力。

我的理解呢,ragflow的意义在于它把原本复杂的rag系统开发,处理成了零代码开发模式,方便非计算机背景的人也可以进行rag系统的搭建和维护,而且融入了类似dify的强大的工作流编排功能。

ragflow 本地 windows 部署


配置要求:ragflow是一个相当“重”的项目,如果你的电脑不满足以下条件,请不要随意尝试


一、软件配置安装


首先我们需要安装好 docker 软件
https://www.runoob.com/docker/windows-docker-install.html

安装好 docker 后启动即可,不用登陆不用设置任何东西,一路跳过。

这里我们需要配置 docker 镜像源


{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
},
"builder": {
"gc": {
"enabled": true,
"defaultKeepStorage": "20GB"
}
}
}

上方代码粘贴替换完毕后点击右下角


到这里我们的 docker 就配置好了

然后我们需要安装 git:
https://cloud.tencent.com/developer/article/2099150

最后我们需要安装 vscode:
https://zhuanlan.zhihu.com/p/264785441

二、安装 ragflow


设置安装路径


在 c 盘之外的地方打开一个文件夹用来安装 ragflow,鼠标右键,点击 open Git Bash here

输入命令:
git clone https://github.com/infiniflow/ragflow.git

点击回车就可以看到多了一个文件夹 ragflow

由于默认配置版本是没有 embedding 模型的,所以我们修改配置为完整版。使用 vscode 打开 .env 文件,修改第 84 行和第 87 行,ctrl+s 保存文件。


拉取 docker 镜像


接下来我们开始部署 docker 镜像,按住 win+R 键,输入 powershell,点击回车。之后输入 cd+刚刚下载的ragflow文件夹路径,我这里是cd D:\demo\ragflow\docker按回车,输入docker compose -f docker-compose.yml up -d按回车。之后可以看到正在使用 docker 加载镜像,稍等一会儿加载完毕即可。

大概 15 分钟后镜像加载完毕就部署完毕了。最后我们输入docker logs -f ragflow-server,出现 RAGFLOW 字体就代表后端服务启动成功了。

之后我们在浏览器地址栏输入:localhost:80即可打开ragflow登录页面。登录页面可以随便输入一个邮箱账号(随便编一个符合邮箱格式的就可以),全部是保存在你本地电脑上的,不用担心数据泄露。但是要注意第一个注册的默认是管理员,所以还是要注意保存一下你注册的邮箱信息。之后点击登录就可以使用ragflow了。


三、简易使用教程


首先我们配置一下 deepseek 模型服务,api-key 可以从 https://platform.deepseek.com/api_key 申请获取(官网已经恢复充值)。

图片

之后我们上传资料创建一个本地知识库就可以啦。可以看到上传的资料支持多种格式,扫描版的 pdf 文档也是可以的。


上传文件之后需要等待文档解析完成,可以看到文档解析的效果还是不错的


创建对话助理后,就可以对话啦,注意在模型设置里把模型替换为 deepseek-chat


四、启动与关闭 ragflow 程序:


关闭 ragflow 程序:


关掉 powershell 窗口,退出 docker 进程即可。


启动 ragflow 程序:


打开 docker 软件,按下 win+R 打开 powershell,输入docker logs -f ragflow-server回车,就启动了后端服务了。!!检查一下 docker 软件,看一下 ragflow 是否全部启动,也就是下图中的几个服务全是运行状态:


如果都在运行中,此时可以在浏览器输入localhost:80即可启动前端界面,愉快的使用 ragflow 啦!

本教程主要参考以下两篇官方文档撰写:

1. https://github.com/infiniflow/ragflow?tab=readme-ov-file

2. https://ragflow.io/docs/dev/


编辑:王菁




关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU


RAGFlow 作为通用 RAG 框架,设计上应该具有一定的模型兼容性。但不同 LLM 模型在 API 接口、输入格式、输出结果等方面可能存在差异,因此在接入不同模型时,可能需要进行一些适配工作,比如:

* API Key 配置: 不同模型的 API Key 获取方式和配置方式可能不同。
* 模型名称配置: 在 RAGFlow 中需要正确配置模型的名称,以便系统能够正确调用相应的模型。
* Prompt 工程: 针对不同模型的特点,可能需要调整 Prompt 模板,以获得更好的生成效果。

我觉得 RAGFlow 更多是面向非专业人士的,让大家能够快速体验 RAG 的魅力。但如果你懂代码,肯定还是自己撸一套更爽,毕竟可以完全按照自己的想法来,各种细节都能掌控。但说实话,RAGFlow 这种开箱即用的东西,能省不少事儿,还是看个人情况吧!

RAGFlow 的零代码特性确实可能会在定制化和深度优化方面有所限制。对于有编程基础的用户,从头构建 RAG 系统可以提供更大的灵活性和控制权,比如可以更精细地调整检索算法、自定义生成模型等。但 RAGFlow 的优势在于快速上手和简化流程,适合快速验证想法或者构建简单应用。具体选择取决于项目需求和自身技术能力。

如果电脑配置不高,可以考虑以下几个方案:

1. 在线 RAG 服务: 许多云平台都提供了 RAG 服务,例如 Azure AI Search、AWS Kendra 等。可以将知识库上传到云端,利用云平台的计算资源进行检索和生成,减轻本地电脑的负担。
2. 模型量化: 降低模型精度可以减少内存占用和计算量。例如,可以将 DeepSeek 模型量化为 INT8 格式。
3. 向量数据库选择: 选择轻量级的向量数据库,例如 Faiss、Annoy 等,可以减少内存占用。
4. 分批处理: 将知识库分成小块,分批进行向量化和检索,避免一次性加载过多数据。

从头构建 RAG 系统就像自己造轮子,虽然可以根据自己的需求定制,但需要投入大量的时间和精力。RAGFlow 相当于一个半成品,已经帮你把框架搭好了,你可以专注于优化业务逻辑。对于有一定编程基础的用户来说,可以考虑在 RAGFlow 的基础上进行二次开发,这样既能享受零代码的便利,又能满足定制化需求。

说实话,低配电脑跑 RAG 确实有点难。除了用在线服务,还可以考虑一些“曲线救国”的办法,比如:

* 知识库瘦身: 尽量把不必要的文档清理掉,或者只保留关键信息。
* 用更小的模型: DeepSeek 也有不同大小的模型,可以试试效果稍差但更轻量的版本。
* 牺牲速度: 实在不行,就让它慢慢跑呗,反正咱也不着急。

配置不够,云来凑!现在云服务这么发达,直接把 RAG 放到云上跑,本地电脑只负责发送请求和接收结果。这样既省钱又省心,还能随时随地使用,何乐而不为呢?

接入不同的 LLM,就像娶不同性格的老婆,都需要花心思去了解和适应。有些 LLM 比较开放,API 文档写得很详细,接入起来比较容易;有些 LLM 则比较封闭,API 文档写得模棱两可,接入起来就比较麻烦。总之,多看文档、多查资料、多做实验,才能找到最适合自己的 LLM。

理论上来说,RAGFlow 应该可以接入各种 LLM,但实际操作起来肯定会遇到一些坑。比如,有些模型的 API 可能不太稳定,或者有些模型的输出格式不太规范。最好的办法还是先查阅 RAGFlow 的官方文档,看看有没有针对特定模型的接入指南。如果没有,就只能自己动手,丰衣足食了。