RagFlow部署、调试及接入Dify中使用

RagFlow部署与Dify集成指南
部署运行你感兴趣的模型镜像

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

  1. 点击用户设置
    在这里插入图片描述
  2. 选择千问API
    在这里插入图片描述
  3. 配置千问API Key
    在这里插入图片描述
  4. 配置默认模型
    在这里插入图片描述

2.2 创建知识库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 测试

在这里插入图片描述

3 测试ragflow的dify接口

3.1 获取ragflow的api key

在这里插入图片描述

3.2 获取知识库的knowledge_id

在这里插入图片描述

3.3 curl测试

根据上面获取到的api keyknowledge 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知识库

  1. 因为ragflow和dify都是部署在本机的docker容器中,所以使用host.docker.internal来代替本地真实的IP
  2. 注意上面curl使用的是http://localhost:10801/api/v1/dify/retrieval,但在这里要使用http://host.docker.internal:10801/api/v1/dify,dify在访问ragflow时,会自动在这个url上加上/retrieval
  3. api key就是前面ragflow的api key
    在这里插入图片描述
    在这里插入图片描述
    注意这里填的是ragflow中的知识库的knowledge id
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

5 调试RagFlow代码

5.1 官方文档

从源代码启动服务 | RAGFlow 引擎

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后端任务

  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 文件中,根据 docker/.env 文件的规定,将mysql端口更新为 5455,将es端口更新为 1200
  3. 注释掉 docker/entrypoint.sh 文件中的 nginx
    # /usr/sbin/nginx
    
  4. 激活 Python 虚拟环境
    cd ragflow/
    source .venv/bin/activate
    export PYTHONPATH=$(pwd)
    
  5. 可选: 如果您无法访问 HuggingFace,请设置HF_ENDPOINT环境变量以使用镜像站点:
    export HF_ENDPOINT=https://hf-mirror.com
    
  6. 运行 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

  1. pycharm打开wslragflow项目:\\wsl.localhost\Ubuntu-24.04\home\ubuntu\ws\ragflow
  2. 选择wslragflow下的.venv/bin/python解释器:\\wsl.localhost\Ubuntu-24.04\home\ubuntu\ws\ragflow\.venv\bin\python
  3. 右键debug启动api/ragflow_server.py

5.8 启动RagFlow前端服务

  1. cd ragflow/web
  2. .umirc.ts 文件中,将 proxy.target 更新为 http://127.0.0.1:9380
  3. 启动 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

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值