从源代码启动RAGFlow服务
一份指南,解释如何从其源代码设置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 依赖
-
安装Poetry:
pipx install poetry
-
配置Poetry:
export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true
-
安装 Python 依赖项:
- slim:
~/.local/bin/poetry install --sync --no-root
- 完整:
~/.local/bin/poetry install --sync --no-root --with full
创建了一个名为
.venv
的虚拟环境,并且所有的 Python 依赖项都被安装到了这个新环境中。
启动第三方服务
以下命令使用 Docker Compose 启动 'base' 服务(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
-
运行entrypoint.sh脚本来启动后端服务:
bash docker/entrypoint.sh
启动RAGFlow前端服务
-
导航到
web
目录并安装前端依赖项:cd web
npm install --force -
更新.umirc.ts中的
proxy.target
为http://127.0.0.1:9380
:vim .umirc.ts
-
启动RAGFlow前端服务:
npm run dev
以下消息显示,展示了您前端服务的IP地址和端口号:
访问RAGFlow服务
在您的网页浏览器中,输入http://127.0.0.1:
,确保端口号与上面截图中的显示一致。
开发完成后停止RAGFlow服务
-
停止RAGFlow前端服务:
pkill npm
-
停止RAGFlow后端服务:
pkill -f "docker/entrypoint.sh"