Chinaunix首页 | 论坛 | 博客
  • 博客访问: 613
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 221
  • 用 户 组: 普通用户
  • 注册时间: 2025-03-05 10:20
文章分类
文章存档

2025年(20)

我的朋友
最近访客

分类: IT业界

2025-04-01 16:39:36

一、RagFlow简介

RagFlow是一个基于对文档深入理解的开源 RAG(检索增强生成)引擎。它的作用是可以让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大模型提问时,RAGFlow先查找自有知识库中的切块内容,接着把查找到的知识库数据输入到对话大模型中再生成答案输出。
它能凭借引用知识库中各种复杂格式的数据为后盾,为用户提供真实可信,少幻觉的答案。RAGFlow的技术原理涵盖了文档理解、检索增强、生成模型、注意力机制等,特别强调了深度文档理解技术,能够从复杂格式的非结构化数据中提取关键信息.

二、RagFlow本地部署(不使用docker)

部署需要的环境:

环境 版本号
python >=3.10
pytorch >=2.0
mysql =8.0
elasticsearch >=8.7.1
ubtuntu 22.4.0

1.MySQL安装

1.1更新软件包列表

							

点击(此处)折叠或打开

  1. sudo apt update

1.2安装 MySQL 服务器

						

点击(此处)折叠或打开

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

1.3启动 MySQL 服务

							

点击(此处)折叠或打开

  1. #启动MySQL
  2. sudo service mysql start
  3. #设置开机自启动
  4. sudo service mysql enable
  5. #检查MySQL状态
  6. sudo service mysql status

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

								

点击(此处)折叠或打开

  1. sudo usermod -d /var/lib/mysql mysql

image.png

1.4设置密码和权限

						

点击(此处)折叠或打开

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

1.5创建ragflow数据库

							

点击(此处)折叠或打开

  1. #创建数据库
  2. create database rag_flow;
  3. #查看数据库是否创建成功
  4. show databases

下面的可以不执行

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

							

点击(此处)折叠或打开

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

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

								

点击(此处)折叠或打开

  1. bind-address= 0.0.0.0

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

							

点击(此处)折叠或打开

  1. sudo systemctl restart mysql

2.安装elasticsearch

2.1安装前的准备

									

点击(此处)折叠或打开

  1. #创建文件夹
  2. mkdir elastic
  3. #创建普通用户
  4. useradd elastic
  5. #设置用户密码
  6. passwd elastic
  7. #将文件指定给elastic用户
  8.  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

										

点击(此处)折叠或打开

  1. #进入bin目录
  2. cd /elastic/elasticsearch-8.7.1/bin
  3. #进入普通用户
  4. su elastic
  5. #启动elasticsearch
  6. ./elasticsearch

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

注意不要随便修改配置文件

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

网址:

结果:

3.安装redis

3.1更新软件列表

													

点击(此处)折叠或打开

  1. sudo apt update
  2. sudo apt upgrade

3.2使用 apt 安装 Redis

												

点击(此处)折叠或打开

  1. sudo apt install redis-server

3.3启动redis

													

点击(此处)折叠或打开

  1. redis-server

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

image.png

3.4测试 Redis 是否正常工作

														

点击(此处)折叠或打开

  1. redis-cli --version

4.ragflow部署

4.1创建虚拟环境

																

点击(此处)折叠或打开

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

4.2安装pytorch

															

点击(此处)折叠或打开

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

4.3克隆ragflow仓库

																

点击(此处)折叠或打开

  1. #github
  2. git clone

4.4下载相应的依赖

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

「requirements (1).txt」来自UC网盘分享

															

点击(此处)折叠或打开

  1. pip install -r requirements.txt

4.5启动ragflow-server(后端)

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

修改配置文件

																

点击(此处)折叠或打开

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

根据自己的信息修改框中的内容

image.png

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

																	

点击(此处)折叠或打开

  1. #进入ragflow
  2. cd /ragflow
  3. #将/ragflow/api/ragflow_server.py复制到ragflow中
  4. cp -r /ragflow/api/ragflow_server.py /ragflow
  5. #运行ragflow_server.py
  6. python ragflow_server.py

成功启动结果如图

image.png

image.png

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

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

																

点击(此处)折叠或打开

  1. pip install infinity-sdk==0.6.0.dev3

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

image.png

/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.出现图片中的错误,运行下面的命令

点击(此处)折叠或打开

  1. pip install google-search-results

image.png

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


点击(此处)折叠或打开

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

image.png

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

5.1nodejs的安装

																

点击(此处)折叠或打开

  1. #更新软件包的索引
  2. sudo apt update
  3. #运行将为 Node.js 20 包配置 APT 存储库的脚本。
  4. curl -fsSL | sudo -E bash -
  5. #运行run后面的命令
  6. apt-get install nsolid -y
  7. #验证安装是否成功
  8. node -v
  9. npm -v

image.png

安装成功的样式

image.png

5.2启动web

																		

点击(此处)折叠或打开

  1. #进入web文件
  2. cd /ragflow/web
  3. #安装前端依赖项
  4. npm install
  5. #启动前端服务
  6. npm run dev

成功启动的截图

image.png

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

image.png

阅读(9) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~