当前位置: 首页 > news >正文

RAGFlow本地部署教程 :多模态检索+动态生成,用AI重构企业知识生产力

RAGFlow是一款基于检索增强生成(RAG)技术的智能工作流平台,通过整合多源数据检索与生成式AI模型,优化企业知识管理、智能问答及自动化报告生成,核心功能包括:

  • 多源数据融合:支持数据库、文档库、API接口的实时检索,兼容文本、图像、音视频等多模态数据;

  • 动态知识增强:生成内容时自动关联最新业务数据,避免模型“幻觉”,支持自定义规则链(如财务报告合规校验);

  • 低代码流程编排:可视化设计工作流(如“客户咨询→知识库检索→生成回复”),无缝集成钉钉、企业微信等平台。

RAGFlow的适用场景包括企业智能客服、行业研报生成、内部知识管理等。

接下来就为大家奉上详细的 RAGFlow 本地部署教程,手把手教你如何将模型部署到你的项目中,轻松享受高性能AI带来的便利。

RAGFlow本地部署教程(非docker)

部署需要的环境:

环境版本号
python>=3.10
pytorch>=2.0
mysql=8.0
elasticsearch>=8.17.1
ubtuntu22.4.0

1.MySQL安装

1.1更新软件包列表

sudo apt update

1.2安装 MySQL 服务器

# 查看可使用的安装包
sudo apt search mysql-server
# 安装指定版本8.0
sudo apt install -y mysql-server-8.0

1.3启动 MySQL 服务

#启动MySQL
sudo service mysql start
#设置开机自启动
sudo service  mysql enable
#检查MySQL状态
sudo service  mysql status

启动MySQL时若出现图片中最后一行的内容可以运行以下命令

sudo usermod -d /var/lib/mysql mysql

image.png

1.4设置密码和权限

# 登录mysql,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功。
sudo mysql -uroot -p
# 设置密码 mysql8.0
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 设置密码 mysql5.7
set password=password('新密码');
# 配置IP 5.7
grant all pri

1.5创建RAGFlow数据库

#创建数据库
create database rag_flow;
#查看数据库是否创建成功
show databases;

下面的可以不执行

注意:配置8.0版本参考:我这里通过这种方式没有实现所有IP都能访问;我是通过直接修改配置文件才实现的,MySQL8.0版本把配置文件 my.cnf 拆分成mysql.cnf 和mysqld.cnf,我们需要修改的是mysqld.cnf文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改 bind-address,保存后重启MySQL即可。

bind-address= 0.0.0.0

重启MySQL重新加载一下配置:

sudo systemctl restart mysql

2安装elasticsearch

2.1安装前的准备

#创建文件夹
mkdir elastic
#创建普通用户
useradd elastic
#设置用户密码
passwd elastic
#将文件指定给elastic用户
chown -R elastic /elastic

2.2安装

进入网址Install Elasticsearch from archive on Linux or MacOS | Elasticsearch Guide [8.17] | Elastic,根据图片中的内容安装elasticsearch

image.png

2.3启动elasticsearch

#进入bin目录
cd /elastic/elasticsearch-8.17.4/bin
#给java执行权限
chmod +x /elastic/elasticsearch-8.17.4/jdk/bin/java
#进入普通用户
su elastic
#启动elasticsearch
./elasticsearch

注意初次启动过程中可能会出现没有权限的错误,只需要给具体的文件夹权限即可

sudo chmod +x /elastic
sudo chmod +x /elastic/elasticsearch-8.17.4
sudo chmod +x /elastic/elasticsearch-8.17.4/jdk
sudo chmod +x /elastic/elasticsearch-8.17.4/jdk/lib

启动成功之后再浏览器输入下面的网址并出现于图片内容相似的结果即为成功

网址:http://localhost:9200

结果:

image.png

若不能访问9200端口,或者需要密码登录可根据下面的配置文件修改你的文件

文件路径:/elastic/elasticsearch-8.17.4/config/elasticsearch.yml

image.png

3.安装minio

3.1下载 MinIO 可执行文件:

wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod +x minio

3.2创建存储目录:

mkdir /data

3.3启动 MinIO 服务器:

./minio server /data

1.png

3.4MinIO使用

1.(可选)访问 MinIO 控制台: 打开浏览器并访问 http://<your-server-ip>:9000(默认端口为 9000)。

2.进入MinIO的的web页面 使用minioadmin登录,注意:账号和密码都是minioadmin

3.然后点击身份,再点击用户

image.png

4.创建用户 user:rag_flow password:123456(密码可以设置成自己的,要记住密码后面会用)

点击创建用户:

image.png

然后填写自己的账号密码以及给权限(如图所示)

2.png

4.安装redis

4.1更新软件列表

sudo apt update
sudo apt upgrade

4.2使用 apt 安装 Redis

sudo apt install redis-server

4.3启动redis

redis-server

出现下面的内容即为启动成功

image.png

4.4测试 Redis 是否正常工作

redis-cli --version

5.ragflow部署

5.1创建虚拟环境

#创建虚拟环境
conda create -n ragflow python==3.12
#激活虚拟环境
conda activate ragflow
#更换匹配下载源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

5.2安装pytorch

pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu124

5.3克隆ragflow仓库

#github
git clone https://github.com/infiniflow/ragflow.git

5.4下载相应的依赖

由于不使用docker启动且官方文档没有requirements.txt文件不能批量下载,本人已经制作了文档,可在下方的网盘中免费下载

「ragflow包」来自UC网盘分享
https://drive.uc.cn/s/dd7e7e3639884?public=1

 pip install -r requirements.txt

5.5启动ragflow-server(后端)

注意在启动ragflow-server时要先启动MySQL,elasticsearch,redis

修改配置文件

#用vim修改配置文件
vim /ragflow/conf/service_conf.yaml

根据自己的信息修图中的内容

image.png

运行/ragflow/api/ragflow_server.py时最好将其复制到/ragflow下,因为有极大概率会报错

#进入ragflow
cd /ragflow
#将/ragflow/api/ragflow_server.py复制到ragflow中
cp -r /ragflow/api/ragflow_server.py /ragflow
#运行ragflow_server.py
python ragflow_server.py

**成功启动结果如图

image.png

image.png


**

注意下面为本人运行过程中所出现的错误,希望对你有所帮助

1.在用批量安装依赖后需要再安装infinity-sdk,因为批量下载时会冲突所以需要单独安装

pip install infinity-sdk==0.6.0.dev3

2.若出现下面的图片中的错误可以进入下面的网址中下载相应的包,并放进相应的位置

image.png

https://github.com/nltk/nltk_data/blob/gh-pages/packages

/root/nltk_data/tokenizers/

/root/nltk_data/corpora/

3.#出现此错误

image.png

将/root/miniconda3/envs/ragflow/lib/python3.12/site-packages/azure/storage/filedatalake/文件夹下的_models.py中的18行修改为如图所示

image.png

4.#出现图片中的错误,运行下面的命令

pip install google-search-results

image.png

5.#若出现下面图片中的错误,可运行下面的命令

sudo apt update && sudo apt install -y unixodbc unixodbc-dev

image.png

6.ragflow的web启动(源启动)

6.1nodejs的安装

#更新软件包的索引
sudo apt update
#运行将为 Node.js 20 包配置 APT 存储库的脚本。
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
#运行run后面的命令
apt-get install nsolid -y
#验证安装是否成功
node -v
npm -v

image.png

安装成功的样式

image.png

6.2启动web

#进入web文件
cd /ragflow/web
#安装前端依赖项
npm install
#启动前端服务
npm run dev

成功启动的截图

image.png

点击红框中的网址即可进入web端(由于网络原因可能进入网页的速度较慢)如图

image.png

注意在使用的时候需要进入/ragflow中运行task_executor.py,这和解析文件有关

#为防止出现路径错误,将它放在ragflow下面运行
cp -r /ragflow/rag/svr/task_executor.py /ragflow/
#运行task_executor.py
python task_executor.py

7.使用nginx静态网页+api模式(推荐)

7.1 安装nginx

  • 检查是否存在apt命令
apt –version

说明:出现版本号就说明当前环境存在apt

  • 更新apt命令
apt update
  • 安装nginx
apt-get install nginx
  • 查看nginx版本
nginx -v

出现nginx版本号,即安装成功。

  • 启动nginx
systemctl start nginx
  • 查看nginx的状态
systemctl status nginx
  • 安装nginx后的文件位置

/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
/var/log/nginx:存放日志

7.2 构建静态网页

注意:一般使用npm run build 构建的静态网页dist文件一般在当前目录

#进入web文件下
cd /ragflow/web
#运行命令构建静态网页
npm run build
#查看是否有dist文件
ls

7.3 配置nginx+api

1.配置nginx.conf

路径:/etc/nginx/

vim /etc/nginx/nginx.conf

内容:

user  root;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;client_max_body_size 1024M;include /etc/nginx/conf.d/ragflow.conf;
}

2.配置ragflow.conf

路径:/etc/nginx/conf.d/

vim /etc/nginx/conf.d/ragflow.conf

内容:(将配置文件中的中文注释去掉)

server {listen 8080; #自己的端口server_name _; #自己想用的域名root /ragflow/web/dist; #通过npm run build建立的静态网页问价dist的存储路径gzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_vary on;gzip_disable "MSIE [1-6]\.";location ~ ^/(v1|api) {proxy_pass http://127.0.0.1:9380; #后端的api接口的ip和端口include proxy.conf;}location / {index index.html;try_files $uri $uri/ /index.html;}# Cache-Control: max-age~@~AExpireslocation ~ ^/static/(css|js|media)/ {expires 10y;access_log off;}
}

3.配置proxy.conf

路径:/etc/nginx/

vim /etc/nginx/proxy.conf

内容:

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;

4.使用命令检查配置文件语法是否有错

nginx -t

5.重启nginx服务

sudo service nginx restart

7.4进入web页面

确保后端服务已经启动成功

#输入在ragflow.conf中自己的ip和端口
http://localhost:8080

image.png


http://www.mrgr.cn/news/98537.html

相关文章:

  • 第3篇:深入 Framer Motion Variants:掌握组件动画编排的艺术
  • Android掉帧分析
  • 利用pnpm patch命令实现依赖包热更新:精准打补丁指南
  • hadoop执行sqoop任务找不到jar
  • HTTP HTTPS RSA
  • idea如何使用git
  • MCP服务,阿里云百炼,Cline,mysql-mcp-server,MCP通信原理
  • 【HD-RK3576-PI】定制用户升级固件
  • GPIO _OUTPUT-NORMAL 模式
  • OpenAI发布GPT-4.1系列模型——开发者可免费使用
  • XSS漏洞及常见处理方案
  • 旅游特种兵迪士尼大作战:DeepSeek高精准路径优化
  • C++进程间通信开发实战:高效解决项目中的IPC问题
  • WINUI——Background颜色使用小结
  • Java EE(8)——线程安全总结(翻新版)——定时器(Timer)线程池(ThreadPoolExecutor)
  • Linux中信号的保存
  • 阿里FPGA XCKU3P开箱- 25G 光纤
  • 【CUDA 】第3章 CUDA执行模型——3.5循环展开(3)
  • 音视频小白系统入门笔记-0
  • 【强化学习漫谈】3.RLHF:从Reward Model到DPO