文章目录
1 部署Ragflow
ragflow的版本为v0.22.1
1.1 下载源码
git clone https://github.com/infiniflow/ragflow.git
1.2 修改端口
编辑docker/.env,修改端口,防止冲突
# 修改原来的80和443
SVR_WEB_HTTP_PORT=10801
SVR_WEB_HTTPS_PORT=14441
1.3 启动
cd ragflow/docker
docker compose -p ragflow -f docker-compose.yml up -d
1.4 访问:http://localhost:10801/
2 创建知识库并测试PDF文档
2.1 配置千问API
- 点击
用户设置

- 选择
千问API

- 配置
千问的API Key

- 配置默认模型

2.2 创建知识库





2.3 测试

3 测试ragflow的dify接口
3.1 获取ragflow的api key

3.2 获取知识库的knowledge_id

3.3 curl测试
根据上面获取到的api key和knowledge id
sudo apt update
sudo apt install jq -y
export ragflow_apikey="ragflow-3Uxz0czmkFFw2xaRxW37DnRBXEFvEqkEGisj3EJRDrg"
curl -X POST http://localhost:10801/api/v1/dify/retrieval \
-H "Authorization: Bearer ${ragflow_apikey}" \
-H "Content-Type: application/json" \
-d '{
"query": "什么是可信计算",
"top_k": 5,
"knowledge_id": "7e485c12c6e411f081c7c6e3c9d95a0f"
}' | jq
4 在dify中接入ragflow知识库
- 因为ragflow和dify都是部署在本机的docker容器中,所以使用
host.docker.internal来代替本地真实的IP - 注意上面
curl使用的是http://localhost:10801/api/v1/dify/retrieval,但在这里要使用http://host.docker.internal:10801/api/v1/dify,dify在访问ragflow时,会自动在这个url上加上/retrieval api key就是前面ragflow的api key


注意这里填的是ragflow中的知识库的knowledge id



5 调试RagFlow代码
5.1 官方文档
5.2 使用WSL环境
使用windows真的是各种坑,安装python依赖会报错,折腾了也解决不了,最后还是使用WSL。
5.3 部署后端环境
5.3.1 安装系统依赖
sudo apt update
sudo apt install build-essential pkg-config unixodbc libjemalloc-dev -y
5.3.2 安装miniconda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
5.3.3 安装UV
source ~/miniconda3/bin/activate
pip install uv
5.3.4 下载源码
git clone https://github.com/infiniflow/ragflow.git
5.3.5 安装python依赖
cd ragflow/
uv sync --python 3.10 --all-extras
5.4 部署前端环境
5.4.1 卸载npm,如果有
sudo apt-get purge nodejs npm
sudo apt-get autoremove
5.4.2 安装nvm
sudo apt update && sudo apt install curl -y
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
5.4.3 安装node 20
source ~/.bashrc
nvm install 20 --lts
nvm alias default 20
nvm use default
node -v
npm -v
5.4.4 安装依赖包
cd ragflow/web
npm install
5.5 启动依赖服务
依赖MinIO、Elasticsearch、Redis 和 MySQ
cd ragflow/
docker compose -f docker/docker-compose-base.yml up -d
5.6 启动RAGFlow后端任务
- 将以下行添加到
/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 文件中,根据 docker/.env 文件的规定,将
mysql端口更新为5455,将es端口更新为1200。 - 注释掉 docker/entrypoint.sh 文件中的
nginx行# /usr/sbin/nginx - 激活 Python 虚拟环境
cd ragflow/ source .venv/bin/activate export PYTHONPATH=$(pwd) - 可选: 如果您无法访问 HuggingFace,请设置
HF_ENDPOINT环境变量以使用镜像站点:export HF_ENDPOINT=https://hf-mirror.com - 运行 entrypoint.sh 脚本以启动后端服务
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so; LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;
5.7 使用pycharm启动ragflow server
pycharm打开wsl的ragflow项目:\\wsl.localhost\Ubuntu-24.04\home\ubuntu\ws\ragflow- 选择
wsl的ragflow下的.venv/bin/python解释器:\\wsl.localhost\Ubuntu-24.04\home\ubuntu\ws\ragflow\.venv\bin\python - 右键
debug启动api/ragflow_server.py
5.8 启动RagFlow前端服务
cd ragflow/web- 在 .umirc.ts 文件中,将
proxy.target更新为http://127.0.0.1:9380 - 启动 RAGFlow 前端服务
npm run dev
5.9 调试汇总
5.9.1 用docker compose启动依赖组件
cd ragflow/
docker compose -p ragflow -f docker/docker-compose-base.yml up -d
5.9.2 启动前端
cd ragflow/web
npm run dev
5.9.3 启动后台任务
cd ragflow
source .venv/bin/activate
export PYTHONPATH=$(pwd)
export HF_ENDPOINT=https://hf-mirror.com
JEMALLOC_PATH=$(pkg-config --variable=libdir jemalloc)/libjemalloc.so;
LD_PRELOAD=$JEMALLOC_PATH python rag/svr/task_executor.py 1;
5.9.4 在pycharm中右键启动api/ragflow_server.py
6 离线安装ragflow
6.1 打包images
cd ragflow/docker
# 列出所有images
docker compose config | grep 'image:' | awk '{print $2}'
# 本地导出images
docker save elasticsearch:8.11.3 -o es.tar
docker save quay.io/minio/minio:RELEASE.2025-06-13T11-33-47Z -o minio.tar
docker save mysql:8.0.39 -o mysql.tar
docker save infiniflow/ragflow:v0.22.1 -o ragflow.tar
docker save valkey/valkey:8 -o valkey.tar
6.2 服务器上导入images
docker load -i es.tar
docker load -i minio.tar
docker load -i mysql.tar
docker load -i ragflow.tar
docker load -i valkey.tar
RagFlow部署与Dify集成指南



3万+

被折叠的 条评论
为什么被折叠?



