RAGFlow安裝+本地知識庫+踩坑記錄

RAGFlow是一種融合了數據檢索與生成式模型的新型系統架構,其核心思想在于將大規模檢索系統與先進的生成式模型(如Transformer、GPT系列)相結合,從而在回答查詢時既能利用海量數據的知識庫,又能生成符合上下文語義的自然語言回復。該系統主要包含兩個關鍵模塊:數據檢索模塊和生成模塊。數據檢索模塊負責在海量數據中快速定位相關信息,而生成模塊則基于檢索結果生成高質量的回答或文本內容。

在實際應用中,RAGFlow能夠在客戶服務、問答系統、智能搜索、內容推薦等領域發揮重要作用,通過檢索與生成的雙重保障,顯著提升系統的響應速度和準確性。

RAGFlow安裝

項目地址:https://github.com/infiniflow/ragflow

wsl安裝
安裝 WSL文檔: https://learn.microsoft.com/zh-cn/windows/wsl/install
WSL基本命令:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
1、管理員權限打開powershell命令

#啟動wsl子系統
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux
/all /norestart
#啟用虛擬機平臺支持
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
/norestart
#設置wsl2
wsl --set-default-version 2

也可以手動選擇:
在這里插入圖片描述

RAGFlow最終完成版安裝步驟
采用docker安裝,沒有的需要安裝下:https://blog.csdn.net/YXWik/article/details/128254108

ragflow項目地址:https://github.com/infiniflow/ragflow
下載項目
在這里插入圖片描述
解壓
在這里插入圖片描述
修改修改鏡像為國內鏡像 F:\ragflow-main\docker 文件夾下的 .env文件中的RAGFLOW_IMAGE

RAGFLOW_IMAGE=docker-0.unsee.tech/infiniflow/ragflow:v0.17.0

在這里插入圖片描述

在.env文件中,使用鏡像地址就行:HF_ENDPOINT=https://hf-mirror.com

在這里插入圖片描述

docker-compose-base.yml 配置更改如下

  redis:image: valkey/valkey:8container_name: ragflow-redisentrypoint: ["redis-server", "--requirepass", "${REDIS_PASSWORD}", "--maxmemory", "128mb", "--maxmemory-policy", "allkeys-lru"]env_file: .envports:- ${REDIS_PORT}:6379volumes:- redis_data:/datanetworks:- ragflowrestart: on-failure

在這里插入圖片描述

更換鏡像:

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"debug": true,"experimental": true,"insecure-registries": [],"registry-mirrors": ["https://docker-0.unsee.tech","https://docker-cf.registry.cyou","https://docker.1panel.live"]
}

在這里插入圖片描述

F:\ragflow-main\docker 目錄下打開cmd命令窗口
在這里插入圖片描述

docker compose -f docker-compose.yml up -d

RAGFlow安裝(每一步的踩坑記錄)
采用docker安裝,沒有的需要安裝下:https://blog.csdn.net/YXWik/article/details/128254108

ragflow項目地址:https://github.com/infiniflow/ragflow
下載項目
在這里插入圖片描述
解壓
在這里插入圖片描述

修改修改鏡像為國內鏡像 F:\ragflow-main\docker 文件夾下的 .env文件中的RAGFLOW_IMAGE

RAGFLOW_IMAGE=docker-0.unsee.tech/infiniflow/ragflow:v0.17.0

在這里插入圖片描述

F:\ragflow-main\docker 目錄下打開cmd命令窗口
在這里插入圖片描述
下載項目的依賴鏡像和環境

docker compose -f docker-compose.yml up -d

遇到如下報錯

在這里插入圖片描述

更換鏡像:

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"debug": true,"experimental": true,"insecure-registries": [],"registry-mirrors": ["https://docker-0.unsee.tech","https://docker-cf.registry.cyou","https://docker.1panel.live"]
}

在這里插入圖片描述
重新下載項目的依賴鏡像和環境

docker compose -f docker-compose.yml up -d

在這里插入圖片描述

安裝并啟動成功后查看 RAGFlow 訪問路徑
在這里插入圖片描述
按照提示注冊登錄即可
在這里插入圖片描述
注冊報錯network abnormal或 網絡異常 ,因為 RAGFlow 可能并未完全啟動成功。在這里插入圖片描述
docker中卸載了重新安裝
再次啟動發現報錯WARNING:root:RedisDB.queue_info rag_flow_svr_queue got exception: no such key
在這里插入圖片描述
我們看上面的日志 發現 redis連接的庫是 1 庫,一會直連redis,查看1庫的中 rag_flow_svr_queue key的情況
在這里插入圖片描述

先在.env中找到redis的密碼
在這里插入圖片描述

infini_rag_flow

在這里插入圖片描述

查看docker中運行的服務

docker ps

在這里插入圖片描述
進入redis容器

docker exec -it ragflow-redis bash

檢查是否存在rag_flow_svr_queue的key,infini_rag_flow 為上面查到的redis密碼

redis-cli -h redis -p 6379 -n 1 -a infini_rag_flow EXISTS rag_flow_svr_queue

在這里插入圖片描述
這里的 -n 1 代表的 1
不存在,咱們創建 rag_flow_svr_queue 的key,默認給個空字符串(先別著急執行后續的這些命令,問題不在redis初始化的key上,往下面看

redis-cli -h redis -p 6379 -n 1 -a infini_rag_flow RPUSH rag_flow_svr_queue ""

在這里插入圖片描述
在這里插入圖片描述
exit退出
在這里插入圖片描述
再次查看日志

docker logs -f ragflow-server

在這里插入圖片描述
報錯變成了:

WARNING:root:RedisDB.queue_info rag_flow_svr_queue got exception: WRONGTYPE Operation against a key holding the wrong kind of value

這意思是說 我們 rag_flow_svr_queue 對應的value的類型不正確,我們當時設置的是字符串類型
在這里插入圖片描述
查找源碼,找到rag_flow_svr_queue ,發現需要的是list類型
在這里插入圖片描述
連接redis 刪除rag_flow_svr_queue

docker exec -it ragflow-redis bash

在這里插入圖片描述
刪除

redis-cli -h redis -p 6379 -n 1 -a infini_rag_flow DEL rag_flow_svr_queue

在這里插入圖片描述
新增 rag_flow_svr_queue 的key,將 value設置為空list

redis-cli -h 127.0.0.1 -p 6379 -a infini_rag_flow -n 1  RPUSH rag_flow_svr_queue ""

在這里插入圖片描述
退出:exit
在這里插入圖片描述
查看日志 docker logs -f ragflow-server
報錯: WARNING:root:RedisDB.queue_info rag_flow_svr_queue got exception: WRONGTYPE Operation against a key holding the wrong kind of value
在這里插入圖片描述
去官網看看有啥解決方案:https://github.com/infiniflow/ragflow
看了好幾個 issues 發現都有這個key不存在報錯
在這里插入圖片描述
這個評論說不帶端口運行

在這里插入圖片描述
再次訪問http://localhost/ 進行注冊發現成功了 ,盲猜一波最初注冊報錯是不是因為項目啟動加載過慢導致了,稍微等等就可以了,還是因為我初始化了redis的key解決了,雖然出現了另一個報錯,但是看起來并不影響
在這里插入圖片描述
在這里插入圖片描述

建立知識庫

在這里插入圖片描述
我這邊本地使用的ollama,配置的千問模型:https://blog.csdn.net/YXWik/article/details/143871588
在這里插入圖片描述
默認的ollama是這個端口

http://127.0.0.1:11434

ollama是windows的docker啟動,則使用

http://host.docker.internal:11434/

查看ollama安裝的模型

ollama list

在這里插入圖片描述
添加模型
在這里插入圖片描述
報錯:Fail to access model(qwen2.5:7b).**ERROR**: [Errno 111] Connection refused
RAG訪問容器內的11434端口造成的訪問失敗
更改為以下:

http://host.docker.internal:11434/

在這里插入圖片描述
在這里插入圖片描述
點擊系統模型設置配置聊天模型
在這里插入圖片描述

創建知識庫
在這里插入圖片描述
上傳知識庫文件
在這里插入圖片描述

設置解析規則
在這里插入圖片描述
在這里插入圖片描述

這里在解析狀態后面有個綠色的開始鍵點擊開始解析
在這里插入圖片描述
雖有redis的報錯,但是稍等一下會開始解析,并沒有什么影響
在這里插入圖片描述
如果解析進度一直不動,是因為部署環境因為網絡無法訪問 huggingface.co ,導致本地模型無法下載
在這里插入圖片描述
解決方案要么開啟科學上網,要么設置代理
設置代理:在.env文件中,使用鏡像地址就行:HF_ENDPOINT=https://hf-mirror.com

在這里插入圖片描述
然后刪除任務重啟Docker
在這里插入圖片描述
在這里插入圖片描述

重啟Docker后ragflow卡住了,將ragflow進行一個重啟
在這里插入圖片描述
重啟之后開始重新解析我發現它還卡在這個位置,我就去redis中查找相關的key,發現redis中一個key也沒有,但是redis的狀態是啟動的
在這里插入圖片描述
查看日志我發現ragflow一直連接不上redis
在這里插入圖片描述
我發現一個問題,我用redis客戶端工具連接redis時發現不輸入密碼可以連接成功,但是ragflow配置文件中設置的redis密碼是infini_rag_flow
Docker 容器的服務的配置中設置是有相關初始化配置的,但很顯然這個配置沒有生效

在這里插入圖片描述
連接redis,查看器配置文件

docker ps
docker exec -it ragflow-redis /bin/bash

在這里插入圖片描述
檢查 Redis 是否正在運行:

pidof redis-server

在這里插入圖片描述
查看 Redis 啟動參數:

 cat /proc/1/cmdline | tr '\0' ' '

在這里插入圖片描述
以上截圖表明 Redis 是以默認方式啟動的,并未包含 --requirepass 參數。因此,Redis 沒有啟用密碼驗證,但我們查看啟動配置文件時發現時有配置密碼的。
命令查看,或者在Docker中查看

docker inspect ragflow-redis

在這里插入圖片描述
在這里插入圖片描述
既然配置文件沒有問題,那下一步我們排查它的啟動腳本 docker-entrypoint.sh
在這里插入圖片描述
在redis的Docker容器中查看entrypoint.sh

cat /usr/local/bin/docker-entrypoint.sh

在這里插入圖片描述
docker-entrypoint.sh 腳本的內容來看,問題的根本原因已經明確:腳本默認啟動的是 valkey-server,而不是 redis-server。因此,即使在啟動容器時傳遞了 redis-server 和相關參數(如 --requirepass),這些參數也被腳本忽略了。

在這里插入圖片描述
怎么處理呢,找到 docker-compose-base.yml配置文件,覆蓋入口腳本來強制使用 redis-server,而不是 valkey-server,在配置文件中找到redis的啟動命令和參數配置進行更改

  redis:image: valkey/valkey:8container_name: ragflow-redisentrypoint: ["redis-server", "--requirepass", "${REDIS_PASSWORD}", "--maxmemory", "128mb", "--maxmemory-policy", "allkeys-lru"]env_file: .envports:- ${REDIS_PORT}:6379volumes:- redis_data:/datanetworks:- ragflowrestart: on-failure

在這里插入圖片描述
改完之后刪除

docker stop ragflow-redis
docker rm ragflow-redis
docker volume rm docker_redis_data

在這里插入圖片描述

docker compose -f docker-compose.yml up -d

在這里插入圖片描述
重啟之后再進入redis 進行查看

docker exec -it ragflow-redis redis-cli
AUTH infini_rag_flow
SELECT 1
keys *

在這里插入圖片描述
如果存在key將其刪除

 del task_consumer_0

在這里插入圖片描述
回到頁面將原數據集刪除后,重新添加并點擊解析,發現報錯沒了

在這里插入圖片描述
稍等一會兒解析成功
在這里插入圖片描述

配置助理
在這里插入圖片描述
選擇知識庫

在這里插入圖片描述
測試
在這里插入圖片描述

ragflow官網的給出一些常見問題的解決方案:https://ragflow.io/docs/dev/faq#issues-with-ragflow-backend-services

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77879.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77879.shtml

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

相關文章

android liveData observeForever 與 observe對比

LiveData 是一個非常有用的組件,用于在數據變化時通知觀察者。LiveData 提供了兩種主要的觀察方法:observe 和 observeForever。這兩種方法在使用場景、生命周期感知以及內存管理等方面有所不同。 一、observe 方法?? ??1. 基本介紹?? ??生命周期感知??:observe…

web-ssrfme

一、題目源碼 <?php highlight_file(__file__); function curl($url){ $ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);echo curl_exec($ch);curl_close($ch); }if(isset($_GET[url])){$url $_GET[url];if(preg_match(/file…

企業AI應用模式解析:從本地部署到混合架構

在人工智能快速發展的今天&#xff0c;企業如何選擇合適的大模型應用方式成為了一個關鍵問題。本文將詳細介紹六種主流的企業AI應用模式&#xff0c;幫助您根據自身需求做出最優選擇。 1. 本地部署&#xff08;On-Premise Deployment&#xff09; 特點&#xff1a;將模型下載…

OpenCV 圖形API(49)顏色空間轉換-----將 NV12 格式的圖像數據轉換為 BGR 顏色空間函數NV12toBGR()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 將圖像從NV12&#xff08;YUV420p&#xff09;顏色空間轉換為BGR。 該函數將輸入圖像從NV12顏色空間轉換為RGB。Y、U和V通道值的常規范圍是0到25…

【java實現+4種變體完整例子】排序算法中【桶排序】的詳細解析,包含基礎實現、常見變體的完整代碼示例,以及各變體的對比表格

以下是桶排序的詳細解析&#xff0c;包含基礎實現、常見變體的完整代碼示例&#xff0c;以及各變體的對比表格&#xff1a; 一、桶排序基礎實現 原理 將數據分到有限數量的桶中&#xff0c;每個桶內部使用其他排序算法&#xff08;如插入排序或快速排序&#xff09;&#xf…

Linux[基本指令]

Linux[基本指令] pwd 查看當前所處的工作目錄 斜杠在Linux中作為路徑分割符 路徑存在的價值為了確定文件的唯一性 cd指令 更改路徑 cd 你要去的路徑(直接進入) cd . 當前目錄 cd . . 上級目錄(路徑回退) 最后的’/為根目錄(根節點) Linux還是window的目錄結構都是樹狀…

git -- 對遠程倉庫的操作 -- 查看,添加(與clone對比),抓取和拉取,推送(注意點,抓取更新+合并的三種方法,解決沖突,對比),移除

目錄 對遠程倉庫的操作 介紹 查看 (git remote) 介紹 查看詳細信息 添加(git remote add) 介紹 與 git clone對比 從遠程倉庫中抓取與拉取 抓取(git fetch) 拉取(git pull) 推送(git push) 介紹 注意 抓取更新合并的方法 git fetch git merge 解決沖突 git …

vue3 excel文件導入

文章目錄 前言使用在vue文件中的使用 前言 最近寫小組官網涉及到了excel文件導入的功能 場景是導入小組成員年級 班級 郵箱 組別 姓名等基本信息的excel表格用于展示各組信息 使用 先下載js庫 npm install xlsx為了提高代碼的復用性 我將它寫成了一個通用的函數 import ap…

Docker環境下SpringBoot程序內存溢出(OOM)問題深度解析與實戰調優

文章目錄 一、問題背景與現象還原**1. 業務背景****2. 故障特征****3. 核心痛點****4. 解決目標** 二、核心矛盾點分析**1. JVM 與容器內存協同失效****2. 非堆內存泄漏****3. 容器內存分配策略缺陷** 三、系統性解決方案**1. Docker 容器配置**2. JVM參數優化&#xff08;容器…

【PGCCC】Postgres MVCC 內部:更新與插入的隱性成本

為什么 Postgres 中的更新操作有時感覺比插入操作慢&#xff1f;答案在于 Postgres 如何在后臺管理數據版本。 Postgres 高效處理并發事務能力的核心是多版本并發控制&#xff08;MVCC&#xff09;。 在本文中&#xff0c;我將探討 MVCC 在 Postgres 中的工作原理以及它如何影響…

Docker使用、容器遷移

Docker 簡介 Docker 是一個開源的容器化平臺&#xff0c;用于打包、部署和運行應用程序及其依賴環境。Docker 容器是輕量級的虛擬化單元&#xff0c;運行在宿主機操作系統上&#xff0c;通過隔離機制&#xff08;如命名空間和控制組&#xff09;確保應用運行環境的一致性和可移…

c#清理釋放內存

雖然c#具有內存管理和垃圾回收機制&#xff0c;但是在arcobjects二次開發嵌入到arcgis data reviewet還會報內存錯誤。需要強制清理某變量內存方法如下: 1設置靜態函數ReleaseCom函數 public static void ReleaseCom(object o) { try{System.Runtime.InteropServices.Marsh…

Linux:進程:進程控制

進程創建 在Linux中我們使用fork函數創建新進程&#xff1a; fork函數 fork函數是Linux中的一個系統調用&#xff0c;用于創建一個新的進程&#xff0c;創建的新進程是原來進程的子進程 返回值&#xff1a;如果子進程創建失敗&#xff0c;返回值是-1。如果子進程創建成功&a…

day1-小白學習JAVA---JDK安裝和環境變量配置(mac版)

JDK安裝和環境變量配置 我的電腦系統一、下載JDK1、oracle官網下載適合的JDK安裝包&#xff0c;選擇Mac OS對應的版本。 二、安裝三、配置環境變量1、終端輸入/usr/libexec/java_home -V查詢所在的路徑&#xff0c;復制備用2、輸入ls -a3、檢查文件目錄中是否有.bash_profile文…

Python項目--基于機器學習的股票預測分析系統

1. 項目介紹 在當今數字化時代&#xff0c;金融市場的數據分析和預測已經成為投資決策的重要依據。本文將詳細介紹一個基于Python的股票預測分析系統&#xff0c;該系統利用機器學習算法對歷史股票數據進行分析&#xff0c;并預測未來股票價格走勢&#xff0c;為投資者提供決策…

計算機視覺與深度學習 | 基于YOLOv8與光流法的目標檢測與跟蹤(Python代碼)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 目標檢測與跟蹤 關鍵實現邏輯檢測-跟蹤協作機制?特征點選擇策略?運動…

Java集合及面試題學習

知識來源沉默王二、小林coding、javaguide 1、ArrayList list.add("66") list.get(2) list.remove(1) list.set(1,"55") List<String> listnew ArrayList<>(); 底層是動態數組 添加元素流程&#xff1a;判斷是否擴容&#xf…

OSPF --- LSA

文章目錄 一、OSPF LSA&#xff08;鏈路狀態通告&#xff09;詳解1. LSA通用頭部2. OSPFv2 主要LSA類型a. Type 1 - Router LSAb. Type 2 - Network LSAc. Type 3 - Summary LSAd. Type 4 - ASBR Summary LSAe. Type 5 - AS External LSAf. Type 7 - NSSA External LSA 3. LSA泛…

Spring Boot 框架介紹及 Spring Boot 與 Spring 實現對比

在日常 Java Web 開發中&#xff0c;Spring 框架幾乎是繞不開的技術體系。傳統的 Spring 項目因其靈活強大而被廣泛應用&#xff0c;但隨著項目規模擴大與業務復雜度提升&#xff0c;XML 配置繁瑣、部署復雜等問題逐漸顯現。為此&#xff0c;Spring Boot 應運而生。 Spring Boo…

基于CNN卷積神經網絡和GEI步態能量提取的視頻人物步態識別算法matlab仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 GEI步態能量提取 4.2 CNN卷積神經網絡原理 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) 2.算法運行軟件版本 matlab2024b/matlab2022a 3.部分核心程序 &…