
一文读懂RAGFlow:从 0 到 1教你搭建RAG知识库
RAGFlow是一种融合了数据检索与生成式模型的新型系统架构,其核心思想在于将大规模检索系统与先进的生成式模型(如Transformer、GPT系列)相结合,从而在回答查询时既能利用海量数据的知识库,又能生成符合上下文语义的自然语言回复。该系统主要包含两个关键模块:数据检索模块和生成模块。数据检索模块负责在海量数据中快速定位相关信息,而生成模块则基于检索结果生成高质量的回答或文本内容。
最近随着Deepseek的火爆,如何高效地整合海量数据与生成式模型成为了技术领域内的一大热点。传统的生成模型在回答复杂问题时常常依赖于预训练数据的广度与深度,而检索增强生成(Retrieval-Augmented Generation,简称RAG)则有效结合了检索与生成的优势,为各类应用场景提供了更为灵活、高效的解决方案。
一、RAGFlow概述
1、RAGFlow的定义
RAGFlow是一种融合了数据检索与生成式模型的新型系统架构,其核心思想在于将大规模检索系统与先进的生成式模型(如Transformer、GPT系列)相结合,从而在回答查询时既能利用海量数据的知识库,又能生成符合上下文语义的自然语言回复。该系统主要包含两个关键模块:数据检索模块和生成模块。数据检索模块负责在海量数据中快速定位相关信息,而生成模块则基于检索结果生成高质量的回答或文本内容。
在实际应用中,RAGFlow能够在客户服务、问答系统、智能搜索、内容推荐等领域发挥重要作用,通过检索与生成的双重保障,显著提升系统的响应速度和准确性。
2、特点
-
高效整合海量数据:借助先进的检索算法,系统能够在大数据中迅速找到相关信息,并将之用于生成回答。
-
增强生成质量:通过引入外部数据,生成模块能够克服模型记忆限制,提供更为丰富和准确的信息。
-
应用场景广泛:包括但不限于在线问答系统、智能客服、知识库问答、个性化推荐等。
3、RAGFlow应用场景
在在线客服系统中,RAGFlow能够利用用户的历史咨询记录、产品文档以及FAQ等数据,实时检索出最相关的信息,并通过生成模块整合成自然、连贯的回复,从而大幅提升客户满意度。
4、RAGFlow系统架构
二、环境准备与系统搭建
1、环境需求
在搭建RAGFlow系统前,需要确保开发与运行环境满足以下要求:
-
硬件配置:建议采用多核CPU、充足内存(16GB及以上)以及支持高并发访问的存储设备;如需部署大规模检索服务,可考虑使用分布式存储集群。
-
操作系统:推荐使用Linux发行版(如CentOS、Ubuntu)以便于Shell脚本自动化管理;同时也支持Windows环境,但在部署自动化脚本时可能需要适当调整。
-
开发语言与工具:主要使用Java进行系统核心模块开发,同时结合Shell脚本实现自动化运维。
-
依赖环境:需要安装Java 8及以上版本,同时配置Maven或Gradle进行依赖管理;对于数据检索部分,可采用ElasticSearch、Apache Solr等开源检索引擎;生成模块则依赖于预训练模型,可以借助TensorFlow或PyTorch进行实现。
2、服务器配置
-
• CPU >= 4 核
-
• RAM >= 16 GB
-
• Disk >= 50 GB
-
• Docker >= 24.0.0 & Docker Compose >= v2.26.1
3、安装
3.1修改 max_map_count
确保 vm.max_map_count
不小于 262144
如需确认 vm.max_map_count
的大小:
$ sysctl vm.max_map_count
如果 vm.max_map_count
的值小于 262144,可以进行重置:
# 这里我们设为 262144:
$ sudo sysctl -w vm.max_map_count=262144
你的改动会在下次系统重启时被重置。如果希望做永久改动,还需要在 /etc/sysctl.conf 文件里把 vm.max_map_count
的值再相应更新一遍:
vm.max_map_count=262144
3.2、下载仓库代码
git clone https://github.com/infiniflow/ragflow.git
3.3、Docker拉取镜像
修改镜像为国内镜像并且选择embedding版本
修改文件docker/.env/
默认配置为:RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0-slim
修改为国内镜像:RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:v0.16.0
运行命令拉取镜像
docker compose -f docker/docker-compose.yml up -d
查看日志
docker logs -f ragflow-server
提示下面提示说明启动成功
____ ___ ______ ______ __
/ __ \ / | / ____// ____// /____ _ __
/ /_/ // /| | / / __ / /_ / // __ \| | /| / /
/ _, _// ___ |/ /_/ // __/ / / / /_/ /| |/ |/ /
/_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/
* Running on all addresses (0.0.0.0)
* * Running on http://127.0.0.1:9380
* * Running on http://x.x.x.x:9380
INFO:werkzeug:Press CTRL+C to quit`
访问IP,进入 RAGFlow,注意不是 9380 端口,Web是http://127.0.01
默认为 80 端口
三、应用
1、注册账号
注册完直接登录
2、添加模型
本文用到的模型类型:Chat 和 Embedding。Rerank 模型等后续在详细介绍。
点击右上角->模型提供商->添加模型
填写模型信息,模型类型选 chat
再添加一个 Embedding 模型用于知识库的向量转换(RAGFlow 默认也有 Embedding)
在系统模型设置中配置聊天模型和嵌入模型为我们刚刚添加的模型
3、创建知识库
填写相关配置
-
• 文档语言:中文
-
• 嵌入模型:选择我们自己运行的
bge-m3:latest
,也可以用默认的。具体效果大家自行评估
上传文件
这里我自己造了一个测试文档来验证知识库,内容是编的,介绍一个 ABCD 工具,文档在文末提供下载。
文件上传后是未解析状态,需要解析才可以使用,点击解析
解析成功后点击文件可以看到解析效果
效果
4、创建聊天
设置模型。token 调整大一些
5、验证效果
问题一:直接发送 ABCD
知识库回答
原文档
问题二:ABCD 错误代码有哪些
知识库回答
原文档
问题三:ABCD 支持哪些系统
知识库回答
原文档
问题四:ABCD 官网
知识库回答
你也可以在回答的结果看到他引用的知识库
原文档
四、总结
本文介绍了 RAGFlow 的基础使用方法,从演示效果来看尚可。然而,在实际应用场景中,各类文件格式与结构各不相同,文件解析成为一大难题。一旦解析不准确,即便使用性能强劲的 Deepseek-R1 大模型(经亲测),也会出现分析错误的情况。因此,在 RAG 过程中,文件解析、Embedding 以及 LLM 是提升准确率的三大关键攻克点。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)