从源代码启动服务
一个解释如何从源代码设置 RAGFlow 服务的指南。按照本指南操作,您将能够使用源代码进行调试。
目标受众
添加了新功能或修改了现有代码并希望使用源代码进行调试的开发者,前提是他们的机器已设置目标部署环境。
前提条件
- CPU ≥ 4 核
- 内存 ≥ 16 GB
- 硬盘 ≥ 50 GB
- Docker ≥ 24.0.0 和 Docker Compose ≥ v2.26.1
如果您尚未在本地机器(Windows、Mac 或 Linux)上安装 Docker,请参阅安装 Docker Engine 指南。
从源代码启动服务
从源代码启动 RAGFlow 服务
克隆 RAGFlow 仓库
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
安装 Python 依赖
-
安装 uv
pipx install uv
-
安装 Python 依赖
- slim
uv sync --python 3.10 # install RAGFlow dependent python modules
- full
uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
将创建一个名为 .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 中指定的所有 host 解析为
127.0.0.1
127.0.0.1 es01 infinity mysql minio redis
-
在 docker/service_conf.yaml.template 中,将 mysql 的 port 更新为
5455
,将 es 的 port 更新为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 中的配置,确保所有 host 和 port 都已正确设置。
-
运行 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"