window环境pycharm搭建ragflow二开环境

1、下载源码

通过以下地址下载ragflow源码

https://codeload.github.com/infiniflow/ragflow/zip/refs/heads/main

2、构建python环境

  • 解压源码,通过uv下载依赖包

进入ragflow根目录,执行以下命令

bash 复制代码
uv sync --python 3.12 --frozen
  • 清华源会报403,可以改成阿里源,打开uv.lock文件,按下图修改
bash 复制代码
https://pypi.tuna.tsinghua.edu.cn/simple
全部替换
https://mirrors.aliyun.com/pypi/simple/

3、修改配置文件

进入conf目录,打开service_conf.yaml文件,将配置改成实际依赖的环境,主要修改mysql、minio、es(必须是8以上)和redis(redis必须是5以上)

4、下载依赖项

启动ragflow要先下载一些模型文件模型文件,可直接执行download_deps.py,此处需要科学上网,等待是来分钟。

5、运行API模块

在pycharm中配置运行脚本

运行脚本后如下图则环境搭建完成

6 运行task-executor模块

task-executor模块是实际执行解析文档的模块,API将文档接收后推送至redis,task模块消费redis执行文档解析任务

7 api与task模块关系

下面的表格清晰展示了两者的核心区别与联系:

对比维度 /api/ragflow_server.py (主服务器) /rag/svr/task_executor.py (任务执行器) 它们如何联系
核心角色 系统的总控中心服务入口 后台的异步任务执行者 指挥与被指挥的关系。主服务器负责任务的"派发",任务执行器负责"执行"。
主要职责 1. 初始化并启动整个系统。 2. 提供核心的Web API服务。 3. 定期扫描并调度待处理文档,生成任务推送到队列。 1. 持续监听Redis任务队列 。 2. 执行具体的文档解析任务(如分块、向量化、索引等)。 通过 Redis消息队列 进行异步通信。主服务器是"生产者",将任务放入队列;任务执行器是"消费者",从队列取出并执行。
运行模式 常驻的主进程,启动所有基础服务。 一个或多个可水平扩展的独立后台进程 构成生产者-消费者模型。两者进程独立,通过队列解耦,提高了系统的可靠性和扩展性。
关键联系 任务的生产者与调度者 任务的消费者与执行者 共同协作,完成从"用户上传文档"到"文档被解析并存入知识库"的完整异步处理流程

🔄 它们如何协同工作?

以你上传一个PDF文件到知识库为例:

  1. 接收请求 :你的请求首先到达 ragflow_server.py 提供的API。

  2. 创建记录:服务器保存文件,并在数据库创建一条"待处理"的文档记录,然后立即返回"上传成功"的响应。

  3. 调度任务ragflow_server.py 的后台线程会定期扫描数据库,发现这条新记录后,生成对应的"文档解析"任务,并将其放入 Redis 队列

  4. 执行任务一个或多个 task_executor.py 进程在后台监听队列,抢到这个任务后,开始执行复杂的解析、分块和向量化工作。

  5. 更新状态:执行器在处理过程中会通过数据库更新进度,完成后通知知识库更新状态。

💡 为何这样设计?

这种架构的核心优势在于解耦异步

  • 提升用户体验:文件上传后立刻得到响应,无需等待耗时处理。

  • 提高系统可靠性:即使某个任务执行器崩溃,任务仍在队列中,可由其他执行器处理。

  • 增强扩展性 :文档处理压力大时,可以单独增加 task_executor.py 的实例数量来水平扩展处理能力。

总结来说,你可以把 ragflow_server.py 看作是系统的大脑和门户 ,而 task_executor.py 则是负责体力活的双手。两者通过消息队列默契配合,共同支撑起RAGFlow高效、稳定的文档处理流程。

如果你对RAGFlow的部署配置或者其他模块(如document_service.py)也感兴趣,我可以为你进一步介绍。

相关推荐
方安乐9 天前
RAG系统架构
ragflow
水中加点糖17 天前
RagFlow实现多模态搜索(文、图、视频)与(关键字/相似度)搜索原理(二)
python·ai·音视频·knn·ragflow·多模态搜索·相似度搜索
小码农叔叔17 天前
【AI大模型】开源知识库 RAGFlow 从部署到实战操作详解
ragflow·ragflow部署与使用·ragflow 搭建·ragflow使用详解·ragflow私有化部署
水中加点糖1 个月前
源码运行RagFlow并实现AI搜索(文搜文档、文搜图、视频理解)与自定义智能体(一)
人工智能·二次开发·ai搜索·文档解析·ai知识库·ragflow·mineru
姚华军2 个月前
RagFlow、Dify部署时,端口如何调整成指定端口
人工智能·dify·ragflow
悟乙己2 个月前
RAGFlow知识库问答引擎使用指南(一)
ragflow
Rysxt_2 个月前
RAGFlow全面教程:从入门到精通,构建企业级智能问答系统
知识库·ragflow
姚华军2 个月前
利用Python算法,解析PDF文件并生成文档分块Chunks,追加到RagFlow知识库
开发语言·python·pdf·chunks·ragflow
haicome4 个月前
deepseek部署
docker·ragflow·deepseek 部署