快速入門 | 您所在的位置:網(wǎng)站首頁(yè) › 屬猴的吉利車(chē)牌號(hào)(hào) › 快速入門 |
快速入門
RAGFlow 是一個(gè)基于深度文檔理解的開源 RAG(檢索增強(qiáng)生成)引擎。當(dāng)與 LLM 集成時(shí),它能夠提供真實(shí)可靠的問答能力,并以各種復(fù)雜格式數(shù)據(jù)中的可靠引證為依據(jù)。 本快速入門指南描述了一個(gè)通用流程,包括從 啟動(dòng)本地 RAGFlow 服務(wù)器, 創(chuàng)建知識(shí)庫(kù), 干預(yù)文件解析,到 建立基于您數(shù)據(jù)集的 AI 對(duì)話。 重要我們官方支持 x86 CPU 和 Nvidia GPU,本文檔提供了在 x86 平臺(tái)上使用 Docker 部署 RAGFlow 的說明。雖然我們也在 ARM64 平臺(tái)上測(cè)試 RAGFlow,但我們不維護(hù)適用于 ARM 的 RAGFlow Docker 鏡像。 如果您在 ARM 平臺(tái)上,請(qǐng)遵循本指南來構(gòu)建 RAGFlow Docker 鏡像。 先決條件? CPU ≥ 4 核 (x86); 內(nèi)存 ≥ 16 GB; 硬盤空間 ≥ 50 GB; Docker ≥ 24.0.0 和 Docker Compose ≥ v2.26.1。 gVisor: 僅在您打算使用 RAGFlow 的代碼執(zhí)行器(沙箱)功能時(shí)需要。 注意如果您尚未在本地機(jī)器(Windows、Mac 或 Linux)上安裝 Docker,請(qǐng)參閱安裝 Docker Engine。 啟動(dòng)服務(wù)器?本節(jié)提供了在 Linux 上設(shè)置 RAGFlow 服務(wù)器的說明。如果您使用的是其他作系統(tǒng),請(qǐng)勿擔(dān)心。大多數(shù)步驟是類似的。 1. 確保 vm.max_map_count ≥ 262144vm.max_map_count。此值設(shè)置了進(jìn)程可以擁有的最大內(nèi)存映射區(qū)域數(shù)量。其默認(rèn)值為 65530。雖然大多數(shù)應(yīng)用程序需要少于一千個(gè)映射,但減小此值可能導(dǎo)致異常行為,并且當(dāng)進(jìn)程達(dá)到限制時(shí),系統(tǒng)將拋出內(nèi)存不足錯(cuò)誤。 RAGFlow v0.18.0 使用 Elasticsearch 或 Infinity 進(jìn)行多次召回。正確設(shè)置 vm.max_map_count 的值對(duì)于 Elasticsearch 組件的正常運(yùn)行至關(guān)重要。 LinuxmacOSWindows1.1. 檢查 vm.max_map_count 的值 $ sysctl vm.max_map_count1.2. 如果 vm.max_map_count 的值不是至少 262144,請(qǐng)將其重置為該值。 $ sudo sysctl -w vm.max_map_count=262144警告此更改將在系統(tǒng)重啟后重置。如果您下次啟動(dòng)服務(wù)器時(shí)忘記更新此值,可能會(huì)遇到 Can't connect to ES cluster 異常。 1.3. 為確保您的更改永久生效,請(qǐng)相應(yīng)地在 /etc/sysctl.conf 中添加或更新 vm.max_map_count 的值 vm.max_map_count=262144如果您在使用 Docker Desktop 的 macOS 上,運(yùn)行以下命令更新 vm.max_map_count docker run --rm --privileged --pid=host alpine sysctl -w vm.max_map_count=262144警告此更改將在系統(tǒng)重啟后重置。如果您下次啟動(dòng)服務(wù)器時(shí)忘記更新此值,可能會(huì)遇到 Can't connect to ES cluster 異常。 要使您的更改持久化,請(qǐng)創(chuàng)建一個(gè)包含適當(dāng)設(shè)置的文件 1.1. 創(chuàng)建一個(gè)文件 sudo nano /Library/LaunchDaemons/com.user.vmmaxmap.plist1.2. 打開文件 sudo launchctl load /Library/LaunchDaemons/com.user.vmmaxmap.plist1.3. 添加設(shè)置 DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> Label com.user.vmmaxmap ProgramArguments /usr/sbin/sysctl -w vm.max_map_count=262144 RunAtLoad1.4. 保存文件后,加載新的守護(hù)程序 sudo launchctl load /Library/LaunchDaemons/com.user.vmmaxmap.plist注意如果以上步驟不起作用,請(qǐng)考慮使用此變通方法,該方法使用容器且無需手動(dòng)編輯 macOS 設(shè)置。 如果您在使用 Docker Desktop 的 Windows 上,則必須使用 docker-machine 來設(shè)置 vm.max_map_count:?$ docker-machine ssh$ sudo sysctl -w vm.max_map_count=262144如果您在使用 Docker Desktop WSL 2 后端的 Windows 上,則使用 docker-desktop 來設(shè)置 vm.max_map_count:?1.1. 在 WSL 中運(yùn)行以下命令 $ wsl -d docker-desktop -u root$ sysctl -w vm.max_map_count=262144警告此更改將在您重啟 Docker 后重置。如果您下次啟動(dòng)服務(wù)器時(shí)忘記更新此值,可能會(huì)遇到 Can't connect to ES cluster 異常。 1.2. 如果您不想每次重啟 Docker 都運(yùn)行這些命令,可以按如下方式更新 %USERPROFILE%.wslconfig 以使您的更改永久生效并對(duì)所有 WSL 分發(fā)版全局生效 [wsl2]kernelCommandLine = "sysctl.vm.max_map_count=262144"這將使所有 WSL2 虛擬機(jī)在啟動(dòng)時(shí)都被分配該設(shè)置。 注意如果您使用的是 Windows 11 或 Windows 10 版本 22H2,并且已安裝 Microsoft Store 版本的 WSL,您還可以更新 docker-desktop WSL 分發(fā)版中的 /etc/sysctl.conf 以使您的更改永久生效 $ wsl -d docker-desktop -u root$ vi /etc/sysctl.conf# Append a line, which reads: vm.max_map_count = 262144克隆倉(cāng)庫(kù) $ git clone https://github.com/infiniflow/ragflow.git$ cd ragflow/docker$ git checkout -f v0.18.0使用預(yù)構(gòu)建的 Docker 鏡像啟動(dòng)服務(wù)器 注意以下命令下載 RAGFlow Docker 鏡像的 v0.18.0-slim 版本。請(qǐng)參閱下表了解不同 RAGFlow 版本的描述。要下載不同于 v0.18.0-slim 的 RAGFlow 版本,在使用 docker compose 啟動(dòng)服務(wù)器之前,請(qǐng)相應(yīng)地更新 docker/.env 文件中的 RAGFLOW_IMAGE 變量。例如:對(duì)于完整版本 v0.18.0,將 RAGFLOW_IMAGE 設(shè)置為 infiniflow/ragflow:v0.18.0。 # Use CPU for embedding and DeepDoc tasks:$ docker compose -f docker-compose.yml up -d# To use GPU to accelerate embedding and DeepDoc tasks:# docker compose -f docker-compose-gpu.yml up -d RAGFlow 鏡像標(biāo)簽鏡像大小 (GB)包含嵌入模型和 Python 包?穩(wěn)定?v0.18.0≈9??穩(wěn)定發(fā)布版本v0.18.0-slim≈2?穩(wěn)定發(fā)布版本nightly≈9??不穩(wěn)定的 nightly 構(gòu)建nightly-slim≈2?不穩(wěn)定的 nightly 構(gòu)建服務(wù)器啟動(dòng)并運(yùn)行后檢查其狀態(tài) $ docker logs -f ragflow-server以下輸出確認(rèn)系統(tǒng)已成功啟動(dòng) ____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0) 重要如果您跳過此確認(rèn)步驟直接登錄 RAGFlow,您的瀏覽器可能會(huì)提示 network anomaly(網(wǎng)絡(luò)異常)錯(cuò)誤,因?yàn)榇藭r(shí)您的 RAGFlow 可能尚未完全初始化。 在您的網(wǎng)頁(yè)瀏覽器中,輸入您的服務(wù)器 IP 地址并登錄 RAGFlow。 警告使用默認(rèn)設(shè)置時(shí),您只需輸入 http://您的機(jī)器IP地址(不帶端口號(hào)),因?yàn)槭褂媚J(rèn)配置時(shí)可以省略默認(rèn)的 HTTP 服務(wù)端口 80。 配置 LLM?RAGFlow 是一個(gè) RAG 引擎,需要與 LLM 配合工作才能提供有根據(jù)、無幻覺的問答能力。RAGFlow 支持大多數(shù)主流 LLM。有關(guān)支持模型的完整列表,請(qǐng)參閱支持的模型。 注意RAGFlow 也支持使用 Ollama、Xinference 或 LocalAI 在本地部署 LLM,但這部分內(nèi)容不包含在本快速入門指南中。 添加和配置 LLM 點(diǎn)擊頁(yè)面右上角的您的標(biāo)志 > 模型提供商 每個(gè) RAGFlow 賬戶都可以免費(fèi)使用 text-embedding-v2,這是通義千問的一個(gè)嵌入模型。這就是您能在已添加模型列表中看到通義千問的原因。您可能需要在后續(xù)更新您的通義千問 API 密鑰。 點(diǎn)擊所需的 LLM 并相應(yīng)地更新 API 密鑰(此處以 DeepSeek-V2 為例) 您添加的模型如下所示 點(diǎn)擊 系統(tǒng)模型設(shè)置 選擇默認(rèn)模型 聊天模型, 嵌入模型, 圖片轉(zhuǎn)文本模型。某些模型,例如圖片轉(zhuǎn)文本模型 qwen-vl-max,是特定 LLM 的附屬模型。您可能需要更新您的 API 密鑰才能訪問這些模型。 創(chuàng)建您的第一個(gè)知識(shí)庫(kù)?您可以在 RAGFlow 中將文件上傳到知識(shí)庫(kù)并將其解析為數(shù)據(jù)集。知識(shí)庫(kù)實(shí)際上是數(shù)據(jù)集的集合。RAGFlow 中的問答可以基于特定的知識(shí)庫(kù)或多個(gè)知識(shí)庫(kù)。RAGFlow 支持的文件格式包括文檔(PDF、DOC、DOCX、TXT、MD)、表格(CSV、XLSX、XLS)、圖片(JPEG、JPG、PNG、TIF、GIF)和幻燈片(PPT、PPTX)。 創(chuàng)建您的第一個(gè)知識(shí)庫(kù) 點(diǎn)擊頁(yè)面頂部中間的 知識(shí)庫(kù) 標(biāo)簽頁(yè) > 創(chuàng)建知識(shí)庫(kù)。 輸入您的知識(shí)庫(kù)名稱并點(diǎn)擊 確定 確認(rèn)更改。 您將被帶到知識(shí)庫(kù)的 配置 頁(yè)面。 RAGFlow 提供了多種分塊模板,可適應(yīng)不同的文檔布局和文件格式。請(qǐng)為您的知識(shí)庫(kù)選擇嵌入模型和分塊方法(模板)。 重要一旦您選擇了嵌入模型并用它解析了文件,您將無法更改它。顯而易見的原因是,我們必須確保特定知識(shí)庫(kù)中的所有文件都使用相同的嵌入模型進(jìn)行解析(確保它們?cè)谙嗤那度肟臻g中進(jìn)行比較)。 您將被帶到知識(shí)庫(kù)的 數(shù)據(jù)集 頁(yè)面。 點(diǎn)擊 + 添加文件 > 本地文件 開始將特定文件上傳到知識(shí)庫(kù)。 在已上傳的文件條目中,點(diǎn)擊播放按鈕開始文件解析 當(dāng)文件解析完成后,其解析狀態(tài)將變?yōu)?成功。 注意 如果您的文件解析卡在 1% 以下,請(qǐng)參閱此常見問題解答。 如果您的文件解析接近完成時(shí)卡住,請(qǐng)參閱此常見問題解答 干預(yù)文件解析?RAGFlow 具有可見性和可解釋性,允許您查看分塊結(jié)果并在必要時(shí)進(jìn)行干預(yù)。作方法如下 點(diǎn)擊已完成文件解析的文件以查看分塊結(jié)果 您將被帶到 分塊 頁(yè)面 將鼠標(biāo)懸停在每個(gè)快照上以快速查看每個(gè)分塊。 雙擊分塊文本以添加關(guān)鍵詞或在必要時(shí)進(jìn)行手動(dòng)更改 您可以向文件分塊添加關(guān)鍵詞,以提高其在包含這些關(guān)鍵詞的查詢中的排名。此作會(huì)增加其關(guān)鍵詞權(quán)重,并可以提高其在搜索列表中的位置。 在檢索測(cè)試中,在 測(cè)試文本 中快速提問,以再次檢查您的配置是否有效 從下圖可以看出,RAGFlow 以真實(shí)可靠的引證進(jìn)行回應(yīng)。 RAGFlow 中的對(duì)話基于特定的知識(shí)庫(kù)或多個(gè)知識(shí)庫(kù)。創(chuàng)建知識(shí)庫(kù)并完成文件解析后,您就可以開始 AI 對(duì)話了。 點(diǎn)擊頁(yè)面頂部中間的 聊天 標(biāo)簽頁(yè) > 創(chuàng)建助手 顯示 聊天配置 對(duì)話框,用于您的下一次對(duì)話。 RAGFlow 提供了為每個(gè)對(duì)話選擇不同聊天模型的靈活性,同時(shí)允許您在 系統(tǒng)模型設(shè)置 中設(shè)置默認(rèn)模型。 更新 助手設(shè)置 命名您的助手并指定您的知識(shí)庫(kù)。 空響應(yīng): 如果您希望 RAGFlow 的答案僅限于您的知識(shí)庫(kù),請(qǐng)?jiān)诖颂幵O(shè)置一個(gè)響應(yīng)。這樣當(dāng)它未能檢索到答案時(shí),它會(huì)統(tǒng)一回應(yīng)您在此處設(shè)置的內(nèi)容。 如果您希望 RAGFlow 在未能從您的知識(shí)庫(kù)中檢索到答案時(shí)進(jìn)行自由發(fā)揮,請(qǐng)將其留空,這可能會(huì)導(dǎo)致幻覺。更新 提示引擎 或一開始保持原樣。 更新 模型設(shè)置。 現(xiàn)在,開始吧 RAGFlow 還提供了 HTTP 和 Python API,供您將 RAGFlow 的功能集成到您的應(yīng)用程序中。閱讀以下文檔以獲取更多信息 獲取 RAGFlow API 密鑰 HTTP API 參考 Python API 參考 |
CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有 |