跳到主要内容

从源码启动服务

本指南介绍如何通过源代码设置一个 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 依赖项

  1. 安装uv:

    pipx install uv
  2. 安装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

更新第三方服务的 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"