RagFlow环境搭建&推理测试

引子
去年12月写了一篇DIfy的博客,感兴趣的童鞋可以移步(https://blog.csdn.net/zzq1989_/article/details/144657580)。Dify对企业级的应用不是太友好。最近有个RAG的项目需求,又重新好好调研了下这个问题,发现RagFlow这个项目还是很活跃,更新很及时,也支持GraghRAG。OK,那就让我们开始吧。。
一、架构介绍
RagFlow是一种融合了数据检索与生成式模型的新型系统架构,其核心思想在于将大规模检索系统与先进的生成式模型(如Transformer、GPT系列)相结合,从而在回答查询时既能利用海量数据的知识库,又能生成符合上下文语义的自然语言回复。该系统主要包含两个关键模块:数据检索模块和生成模块。数据检索模块负责在海量数据中快速定位相关信息,而生成模块则基于检索结果生成高质量的回答或文本内容。
在实际应用中,RAGFlow能够在客户服务、问答系统、智能搜索、内容推荐等领域发挥重要作用,通过检索与生成的双重保障,显著提升系统的响应速度和准确性。
0
1、检索流程
(1)首先Questions提出问题,由查询分析器进行Keyword & Embedding,到AI 原生数据库(Infinity)进行相似性检索,返回Chunk数据
(2)基于多路召回、融合重排序处理,得到更精确、准确答案
(3)调用LLMs进行内容生成,返回答案给用户
2、知识加载
(1)Documents加载进行Task Dispatch分发,进行Task Exector
(2)基于深度文档理解(DeepDoc)处理,如:OCR、文档解析、文档分层分析、表结构识别
(3)基于可控可解释的模板文本切片,形成Chunk存入AI 原生数据库
3、主要功能
(1)"Quality in, quality out"
(2)基于模板的文本切片
(3)有理有据、最大程度降低幻觉(hallucination)
(4)兼容各类异构数据源
(5)全程无忧、自动化的 RAG 工作流
二、环境安装
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、环境安装
cd /datas/work/zzq/RAGFlow/ragflow-main/docker
sysctl -w vm.max_map_count=262144
vi docker-compose-gpu.yml 删除
include:
- ./docker-compose-base.yml
4、拉取镜像并启动
docker compose -f docker-compose-base.yml -f docker-compose-gpu.yml up -d
0
5、80端口占用报错
0
6、修改80端口
0
7、选择带embedding模型的镜像
0
8、重新执行
0
9、查看服务
docker logs -f ragflow-server
0
10、关闭容器服务
docker compose -f docker-compose-base.yml -f docker-compose-gpu.yml down -v
11、如果报Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.错误
三、推理测试
1、浏览器打开 http:ip:800/login,(800为二、6步骤中改的数据)
0
2、注册后登录,可以选择语言
0
docker pull ollama/ollama
docker run --name ollama -p 11434:11434 ollama/ollama
4、下载bge-m3嵌入模型
docker exec ollama ollama pull bge-m3
0
5、验证ollama是否正常
docker exec -it ragflow-server bash
curl http://host.docker.internal:11434/
0
退出容器
0
6、RagFlow不支持Ollama的reranker模型,安装Xinference,使用Xinference的reranker支持模型,安装Xinference
cd /datas/work/zzq/RagFlow/ragflow-main/docker
docker compose -f docker-compose-xinference.yml up -d
启动xinference
docker exec xinference xinference-local --host 0.0.0.0 --port 9997
网页端打开
7、下载rerank模型
modelscope download --model BAAI/bge-reranker-v2-m3 README.md --local_dir .//bge-reranker-v2-m3
8、载入rerank模型
docker exec xinference xinference launch --model-uid bge-reranker-v2-m3 --model-name bge-reranker-v2-m3 --model-type rerank --replica 1 --n-gpu auto --model-path /data/bge-reranker-v2-m3
0
9、注册DeepSeek语言模型
 
0
 
0
10、Xinference大语言模型加载
0
加载成功后,Running Models显示如下
0
11、命令行启动
docker exec xinference xinference launch --model-name DeepSeek-R1-Distill-Qwen-7B --model-format pytorch --model-engine transformers
12、选择模型提供商Ollama或者XInference
 
0
13、添加embedding模型和chat模型
0
14、添加rerank模型
0
15、设置默认模型
0
16、知识库上传
0
17、知识库测试
0
18、聊天模式设置知识库
0
19、聊天测试
 
0
 
posted @ 2025-05-19 09:20  要养家的程序猿  阅读(624)  评论(0)    收藏  举报