作为一款热门的RAG知识库,RAGflow一开始就非常火爆。官方也提出了两种部署方式:docker部署和源码部署。

然而,对于mac的用户却是各种各样的问题。而且官方也不维护ARM的docker镜像。

博主,就把自己部署的方式给大家分享。整个部署都是参考官方操作手册。
https://ragflow.io/docs/dev/launch_ragflow_from_source
安装前准备
源码部署前我们必须要安装三个工具。
1、docker环境,用来安装ragflow所依赖的资源包:mysql、es、minio资源。
2、nodejs环境,用来部署web前端环境。
3、uv包管理器。mac可以直接通过在命令框中输入:brew install uv 即可。
安装操作具体步骤
大部分的命令都是和官方保持一致,切记红色的命令,必须要执行!
第一步:下载包资源
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
打开文件pyproject.toml将xgboot版本改为1.6.0

不然在执行下一步操作,就会报错这个:

第二步:安装依赖文件
uv sync --python 3.10
第三步:安装依赖的第三方库:mysql、es、minio等。直接运行docker命令,一键安装。
docker compose -f docker/docker-compose-base.yml up -d
这时候,我们可以通过“docker ps”命令,观察第三方依赖库是否正常安装。
第四步:修改/etc/hosts文件,添加一行,目的用来配置es和mysql等的访问路径。
127.0.0.1 es01 infinity mysql minio redis
tips:如果hosts文件无法修改,可以直接复制到其他文件夹,修改好再覆盖原文件。
第五步:修改python运行环境变量,以及配置访问镜像地址。
source .venv/bin/activate
export PYTHONPATH=$(pwd)
export HF_ENDPOINT=https://hf-mirror.com
第六步:执行下面的命令:
首先要安装pkg-config,如果电脑有,可以忽略这条命令。
brew install pkg-config
第七步:运行程序,启动后端代码,注意是两个程序:ragflow_server 和 task_executor。
nohup python api/ragflow_server.py > logs/ragflow_server.log 2>&1 &
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;
如果控制台和logs/ragflow_server.log 都没有错误,代表程序启动成功。
这个是ragflow的日志。

这个是task_executor的日志。

接下来就是执行前端了,再打开一个ragflow的窗口,执行下面的命令,很简单:
cd web
npm i
npm run dev
如果发现这个命令,代表已经成功启动。

写在后面的话
今天总算是在mac端将代码部署起来了,接下来可以借助ragflow有更多的玩法等待着大家。
(文:大瑜聊AI)