Skip to main content
Version: DEV

从源代码启动服务

一个解释如何从其源代码设置 RAGFlow 服务的指南。通过遵循本指南,您将能够使用源代码进行调试。

目标受众

添加了新功能或修改了现有代码并希望使用源代码进行调试的开发者,前提是他们的机器已设置好目标部署环境。

前置条件

  • CPU ≥ 4 核
  • RAM ≥ 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 依赖项

  1. 安装 uv:

    pipx install uv
  2. 安装 Python 依赖项:

    • slim:
    uv sync --python 3.10 # 安装 RAGFlow 依赖的 python 模块
    • full:
    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

更新第三方服务的 hostport 设置

  1. 将以下行添加到 /etc/hosts 中,以将 docker/service_conf.yaml.template 中指定的所有主机解析为 127.0.0.1

    127.0.0.1       es01 infinity mysql minio redis
  2. docker/service_conf.yaml.template 中,将 mysql 端口更新为 5455,es 端口更新为 1200,如 docker/.env 中指定的。

启动 RAGFlow 后端服务

  1. docker/entrypoint.sh 中注释掉 nginx 行:

    # /usr/sbin/nginx
  2. 激活 Python 虚拟环境:

    source .venv/bin/activate
    export PYTHONPATH=$(pwd)
  3. **可选:**如果您无法访问 HuggingFace,请设置 HF_ENDPOINT 环境变量以使用镜像站点:

    export HF_ENDPOINT=https://hf-mirror.com
  4. 检查 conf/service_conf.yaml 中的配置,确保所有主机和端口都正确设置。

  5. 运行 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 前端服务

  1. 导航到 web 目录并安装前端依赖项:

    cd web
    npm install
  2. .umirc.ts 中将 proxy.target 更新为 http://127.0.0.1:9380

    vim .umirc.ts
  3. 启动 RAGFlow 前端服务:

    npm run dev 

    出现以下消息,显示您的前端服务的 IP 地址和端口号:

访问 RAGFlow 服务

在您的网络浏览器中,输入 http://127.0.0.1:<PORT>/,确保端口号与上面截图中显示的匹配。

开发完成后停止 RAGFlow 服务

  1. 停止 RAGFlow 前端服务:

    pkill npm
  2. 停止 RAGFlow 后端服务:

    pkill -f "docker/entrypoint.sh"