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.pswp.cn/bicheng/77312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77312.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C/C++】深入理解指針(二)

文章目錄 深入理解指針(二)1.const修飾指針1.1 const修飾變量1.2 const修飾指針變量 2.野指針2.1 野指針成因1.指針未初始化2. 指針越界訪問3.指針指向的空間釋放 2.2 如何規避野指針2.2.1 指針初始化2.2.2 小心指針越界2.2.3 指針變量不再使?時&#xff0c;及時置NULL&#x…

【verilog】在同一個 always 塊中寫了多個“看起來獨立”的 if / if-else,到底誰先誰后,怎么執行?會不會沖突?

&#x1f50d; 問題本質 在一個 always (posedge clk) 塊中&#xff0c;所有的代碼都是順序執行的。但這不意味著它就像軟件一樣“一條一條執行”&#xff0c;因為最終是電路&#xff01;電路是并行存在的&#xff01; Verilog 是硬件描述語言&#xff08;HDL&#xff09;&am…

【React】什么是 Hook

useStateuseEffectuseRef 什么是hook&#xff1f;16.8版本出現的新特性。可以在不編寫class組件的情況下使用state以及其它的React特性 為什么有hook&#xff1f;class組件很難提取公共的重用的代碼&#xff0c;然后反復使用&#xff1b;不編寫類組件也可以使用類組件的狀態st…

如何查看自己抖音的IP屬地?詳細教程及如何修改

在當今互聯網時代&#xff0c;IP屬地信息已成為各大社交平臺&#xff08;如抖音、微博、快手等&#xff09;展示用戶真實網絡位置的重要功能。以下是關于如何查看抖音IP屬地的詳細教程及常見問題解答&#xff0c;幫助您快速了解相關信息&#xff1a; 一、如何查看抖音賬號的IP屬…

深度學習算力革新:AI服務器在運維工作中的智能化實踐

【導語】作為IT基礎設施服務領域的從業者&#xff0c;我們在日常工作中發現&#xff0c;AI服務器的智能化運維能力正在重塑傳統IDC的管理模式。本文將以DeepSeek系列服務器為例&#xff0c;分享智能算力設備在真實運維場景中的創新應用。 一、傳統服務器集群的運維痛點 在數據…

安裝部署RabbitMQ

一、RabbitMQ安裝部署 1、下載epel源 2、安裝RabbitMQ 3、啟動RabbitMQ web管理界面 啟用插件 rabbitmq數據目錄 創建rabbitmq用戶 設置為管理員角色 給用戶賦予權限 4、訪問rabbitmq

中間件--ClickHouse-4--向量化執行(什么是向量?為什么向量化執行的更快?)

1、向量&#xff08;Vector&#xff09;的概念 &#xff08;1&#xff09;、向量的定義 向量&#xff1a;在計算機科學中&#xff0c;向量是一組同類型數據的有序集合&#xff0c;例如一個包含多個數值的數組。在數據庫中&#xff0c;向量通常指批量數據&#xff08;如一列數…

Python PDF 轉 Markdown 工具庫對比與推薦

根據最新評測及開源社區實踐&#xff0c;以下為綜合性能與適用場景的推薦方案&#xff1a; 1. ?Marker? ?特點?&#xff1a; 轉換速度快&#xff0c;支持表格、公式&#xff08;轉為 LaTeX&#xff09;、圖片提取&#xff0c;適配復雜排版文檔?。依賴 PyTorch&#xff0c…

Vue 和 Spring boot 和 Bean 不同生命周期

一、Vue 組件生命周期 父子組件生命周期順序&#xff1a; 創建時&#xff1a; 父 beforeCreate → 父 created → 父 beforeMount → 子組件生命周期 → 父 mounted 更新時&#xff1a; 父 beforeUpdate → 子組件更新 → 父 updated。 銷毀時&#xff1a; 父 beforeDestroy…

Microsoft Azure 基礎知識簡介

Microsoft Azure 基礎知識簡介 已完成100 XP 2 分鐘 Microsoft Azure 是一個云計算平臺&#xff0c;提供一系列不斷擴展的服務&#xff0c;可幫助你構建解決方案來滿足業務目標。 Azure 服務支持從簡單到復雜的一切內容。 Azure 具有簡單的 Web 服務&#xff0c;用于在云中托…

C語言鏈接數據庫

目錄 使用 yum 配置 mysqld 環境 查看 mysqld 服務的版本 創建 mysql 句柄 鏈接數據庫 使用數據庫 增加數據 修改數據 查詢數據 獲取查詢結果的行數 獲取查詢結果的列數 獲取查詢結果的列名 獲取查詢結果所有數據 斷開鏈接 C語言訪問mysql數據庫整體源碼 通過…

【Maven】手動安裝依賴到本地倉庫

【Maven】手動安裝依賴到本地倉庫 【一】下載依賴【二】安裝 JAR 文件到本地倉庫【三】驗證安裝【四】在項目中使用該依賴【1】注意事項【2】額外提示 【一】下載依賴 登錄到中央倉庫下載依賴&#xff0c;中央倉庫地址&#xff1a;https://mvnrepository.com/ 搜搜你的依賴的a…

騰訊云golang一面

go垃圾回收機制 參考自&#xff1a;https://zhuanlan.zhihu.com/p/334999060 go 1.3 標記清除法 缺點 go 1.5 三色標記法 屏障機制 插入屏障 但是如果棧不添加,當全部三色標記掃描之后,棧上有可能依然存在白色對象被引用的情況(如上圖的對象9). 所以要對棧重新進行三色標記掃…

跨平臺嵌入式音視頻開發指南:EasyRTC音視頻通話的多場景適配與AI擴展能力

在數字化通信技術飛速發展的今天&#xff0c;實時音視頻通信已成為眾多智能設備和應用的核心功能。從智能家居到遠程辦公&#xff0c;從在線教育到智能安防&#xff0c;音視頻通信技術的應用場景不斷拓展&#xff0c;對低延遲、高穩定性和跨平臺兼容性的需求也在持續增長。在這…

Android 11 去掉性能受到影響通知

源碼位置: frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java final void finishBooting() {TimingsTraceAndSlog t = new TimingsTraceAndSlog(TAG + "Timing",Trace.TRACE_TAG_ACTIVITY_MANAGER);t.traceBegin("Finis…

Mac idea WordExcel等文件git modify 一直提示修改狀態

CRLF LF CR 換行符自動轉換問題 查看狀態&#xff1a;git config --global --list Mac需要開啟&#xff0c;window下需要關閉 關閉命令&#xff1a;git config --global core.autocrlf false 命令解釋&#xff1a; autocrlf true 表示要求git在提交時將crlf轉換為lf&a…

Apache Commons CLI 入門教程:輕松解析命令行參數

文章目錄 Apache Commons CLI 入門教程&#xff1a;輕松解析命令行參數一、什么是 Commons CLI&#xff1f;二、為什么選擇 Commons CLI&#xff1f;三、快速開始1. 添加依賴2. 基礎示例3. 運行示例1. 在Idea中運行2. 命令行中運行3. 使用 Maven/Gradle 運行&#xff08;推薦&a…

VS2022調試嵌入式linux C# 程序 高效的開發方案

1.目標板子配置好ssh,確保PC可以連上 2.目標板子上傳VSDBG程序&#xff0c;詳見我的上一個文章 3.PC安裝winfsp&#xff0c; sshfs,SSHFS-Win Manager.傻瓜式安裝&#xff0c;將目標板子映射到PC的某個盤 4.VS2022中&#xff0c;你的工程的exe生成目錄到上面盤中某個路徑 5…

Python中如何加密/解密敏感信息(如用戶密碼、token)

敏感信息,如用戶密碼、API密鑰、訪問令牌(token)、信用卡號以及其他個人身份信息(PII),構成了現代應用程序和系統中最為關鍵的部分。這些信息一旦被未經授權的第三方獲取,可能引發災難性的后果,從個人隱私泄露到企業經濟損失,甚至是大規模的社會安全問題。保護這些敏感…

智能體開發的范式革命:Cangjie Magic全景解讀與實踐思考

引言&#xff1a;當智能體開發遇見倉頡魔法 在人工智能技術日新月異的今天&#xff0c;智能體(Agent)開發正從實驗室走向產業應用的核心舞臺。2025年3月&#xff0c;倉頡社區推出的Cangjie Magic開源平臺&#xff0c;以其創新的設計理念和技術架構&#xff0c;為這一領域帶來了…