从源码启动服务
本指南介绍如何通过源代码设置一个 RAGFlow 服务。按照此指南操作可以使用源代码进行调试。
目标受众
对于那些在机器上已经设置了目标部署环境的开发人员,他们添加了新功能或修改现有代码,并希望通过源代码进行调试。
先决条件
- CPU ≥4 核心
- 内存 ≥16 GB
- 磁盘空间 ≥50 GB
- Docker ≥24.0.0 & Docker Compose ≥v2.26.1
如果你的本地机器(Windows、Mac或Linux)尚未安装Docker,请参阅 Install Docker Engine 指南。
从源代码启动服务
要使用源代码启动RAGFlow服务:
克隆 RAGFlow 存储库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
安装 Python 依赖项
-
安装uv:
pipx install uv
-
安装Python依赖项:
- 精简版:
uv sync --python 3.10 # 安装RAGFlow依赖的Python模块
- 全功能版:
uv sync --python 3.10 --all-extras # 安装RAGFlow依赖的Python模块
创建了一个名为
.venv
的虚拟环境,并将所有Python依赖项安装到新的环境中。
启动第三方服务
以下命令使用Docker Compose启动“基础”服务(MinIO、Elasticsearch、Redis和MySQL):
docker compose -f docker/docker-compose-base.yml up -d
更新第三方服务的 host
和 port
设置
-
在
/etc/hosts
中添加以下行,将docker/service_conf.yaml.template中指定的所有主机解析为127.0.0.1
:127.0.0.1 es01 infinity mysql minio redis
-
在 docker/service_conf.yaml.template 中更新mysql端口到
5455
和es端口到1200
,如在 docker/.env 中指定。
启动 RAGFlow 后端服务
-
注释掉 docker/entrypoint.sh 文件中的
nginx
行:# /usr/sbin/nginx
-
激活Python虚拟环境:
source .venv/bin/activate
export PYTHONPATH=$(pwd) -
可选: 如果无法访问HuggingFace,设置HF_ENDPOINT环境变量以使用镜像站点:
export HF_ENDPOINT=https://hf-mirror.com
-
检查 conf/service_conf.yaml 中的配置,确保所有主机和端口已正确设置。
-
运行 entrypoint.sh 脚本启动后端服务:
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;python api/ragflow_server.py;
启动 RAGFlow 前端服务
-
导航到
web
目录并安装前端依赖项:cd web
npm install -
在 .umirc.ts 中将
proxy.target
更新为http://127.0.0.1:9380
:vim .umirc.ts
-
启动 RAGFlow 前端服务:
npm run dev
将显示以下消息,包括您的前端服务的IP地址和端口号:
访问 RAGFlow 服务
在您的网络浏览器中输入 http://127.0.0.1:<PORT>/
,确保端口号与上面的截图中的端口号匹配。
完成开发后停止 RAGFlow 服务
-
停止RAGFlow前端服务:
pkill npm
-
停止RAGFlow后端服务:
pkill -f "docker/entrypoint.sh"