English | 简体中文 | 日本語 | 한국어 | Bahasa Indonesia
RAGFlow 是一款基於深度文件理解所建構的開源 RAG(Retrieval-Augmented Generation)引擎。 RAGFlow 可以為各種規模的企業及個人提供一套精簡的 RAG 工作流程,結合大語言模型(LLM)針對用戶各類不同的複雜格式數據提供可靠的問答以及有理有據的引用。
請登入網址 https://demo.ragflow.io 試用 demo。
- 2024-12-18 升級了 Deepdoc 的文檔佈局分析模型。
- 2024-12-04 支援知識庫的 Pagerank 分數。
- 2024-11-22 完善了 Agent 中的變數定義和使用。
- 2024-11-01 對解析後的 chunk 加入關鍵字抽取和相關問題產生以提高回想的準確度。
- 2024-08-22 支援用 RAG 技術實現從自然語言到 SQL 語句的轉換。
- 2024-08-02 支持 GraphRAG 啟發於 graphrag 和心智圖。
⭐️點擊右上角的 Star 追蹤RAGFlow,可以取得最新發布的即時通知 !🌟
- 基於深度文件理解,能夠從各類複雜格式的非結構化資料中提取真知灼見。
- 真正在無限上下文(token)的場景下快速完成大海撈針測試。
- 不只是智能,更重要的是可控可解釋。
- 多種文字範本可供選擇
- 文字切片過程視覺化,支援手動調整。
- 有理有據:答案提供關鍵引用的快照並支持追根溯源。
- 支援豐富的文件類型,包括 Word 文件、PPT、excel 表格、txt 檔案、圖片、PDF、影印件、影印件、結構化資料、網頁等。
- 全面優化的 RAG 工作流程可以支援從個人應用乃至超大型企業的各類生態系統。
- 大語言模型 LLM 以及向量模型皆支援配置。
- 基於多路召回、融合重排序。
- 提供易用的 API,可輕鬆整合到各類企業系統。
- CPU >= 4 核
- RAM >= 16 GB
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
如果你並沒有在本機安裝 Docker(Windows、Mac,或 Linux), 可以參考文件 Install Docker Engine 自行安裝。
-
確保
vm.max_map_count
不小於 262144:如需確認
vm.max_map_count
的大小:$ sysctl vm.max_map_count
如果
vm.max_map_count
的值小於 262144,可以進行重設:# 這裡我們設為 262144: $ sudo sysctl -w vm.max_map_count=262144
你的改動會在下次系統重新啟動時被重置。如果希望做永久改動,還需要在 /etc/sysctl.conf 檔案裡把
vm.max_map_count
的值再相應更新一遍:vm.max_map_count=262144
-
克隆倉庫:
$ git clone https://github.com/infiniflow/ragflow.git
-
進入 docker 資料夾,利用事先編譯好的 Docker 映像啟動伺服器:
執行以下指令會自動下載 RAGFlow slim Docker 映像
v0.15.1-slim
。請參考下表查看不同 Docker 發行版的說明。如需下載不同於v0.15.1-slim
的 Docker 映像,請在執行docker compose
啟動服務之前先更新 docker/.env 檔案內的RAGFLOW_IMAGE
變數。例如,你可以透過設定RAGFLOW_IMAGE=infiniflow/ragflow:v0.15.1
來下載 RAGFlow 鏡像的v0.15.1
完整發行版。$ cd ragflow $ docker compose -f docker/docker-compose.yml up -d
RAGFlow image tag Image size (GB) Has embedding models? Stable? v0.15.1 ≈9 ✔️ Stable release v0.15.1-slim ≈2 ❌ Stable release nightly ≈9 ✔️ Unstable nightly build nightly-slim ≈2 ❌ Unstable nightly build [!TIP] 如果你遇到 Docker 映像檔拉不下來的問題,可以在 docker/.env 檔案內根據變數
RAGFLOW_IMAGE
的註解提示選擇華為雲或阿里雲的對應映像。- 華為雲鏡像名:
swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
- 阿里雲鏡像名:
registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow
- 華為雲鏡像名:
-
伺服器啟動成功後再次確認伺服器狀態:
$ docker logs -f ragflow-server
出現以下介面提示說明伺服器啟動成功:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:9380 * Running on http://x.x.x.x:9380 INFO:werkzeug:Press CTRL+C to quit
如果您跳過這一步驟系統確認步驟就登入 RAGFlow,你的瀏覽器有可能會提示
network anormal
或網路異常
,因為 RAGFlow 可能並未完全啟動成功。 -
在你的瀏覽器中輸入你的伺服器對應的 IP 位址並登入 RAGFlow。
上面這個範例中,您只需輸入 http://IP_OF_YOUR_MACHINE 即可:未改動過設定則無需輸入連接埠(預設的 HTTP 服務連接埠 80)。
-
在 service_conf.yaml.template 檔案的
user_default_llm
欄位設定 LLM factory,並在API_KEY
欄填入和你選擇的大模型相對應的 API key。_好戲開始,接著奏樂接著舞! _
系統配置涉及以下三份文件:
- .env:存放一些基本的系統環境變量,例如
SVR_HTTP_PORT
、MYSQL_PASSWORD
、MINIO_PASSWORD
等。 - service_conf.yaml.template:設定各類別後台服務。
- docker-compose.yml: 系統依賴該檔案完成啟動。
請務必確保 .env 檔案中的變數設定與 service_conf.yaml.template 檔案中的設定保持一致!
如果無法存取映像網站 hub.docker.com 或模型網站 huggingface.co,請依照 .env 註解修改 RAGFLOW_IMAGE
和 HF_ENDPOINT
。
./docker/README 解釋了 service_conf.yaml.template 用到的環境變數設定和服務配置。
如需更新預設的HTTP 服務連接埠(80), 可以在docker-compose.yml 檔案中將配置80:80
改為<YOUR_SERVING_PORT>:80
。
所有系統配置都需要透過系統重新啟動生效:
$ docker compose -f docker/docker-compose.yml up -d
###把文檔引擎從 Elasticsearch 切換成為 Infinity
RAGFlow 預設使用 Elasticsearch 儲存文字和向量資料. 如果要切換為 Infinity, 可以按照下面步驟進行:
-
停止所有容器運作:
$ docker compose -f docker/docker-compose.yml down -v
-
設定 docker/.env 目錄中的
DOC_ENGINE
為infinity
. -
啟動容器:
$ docker compose -f docker/docker-compose.yml up -d
Warning
Infinity 目前官方並未正式支援在 Linux/arm64 架構下的機器上運行.
本 Docker 映像大小約 2 GB 左右並且依賴外部的大模型和 embedding 服務。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --build-arg LIGHTEN=1 --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
本 Docker 大小約 9 GB 左右。由於已包含 embedding 模型,所以只需依賴外部的大模型服務即可。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:nightly .
-
安裝 uv。如已安裝,可跳過此步驟:
pipx install uv export UV_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
-
下載原始碼並安裝 Python 依賴:
git clone https://github.com/infiniflow/ragflow.git cd ragflow/ uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
-
透過 Docker Compose 啟動依賴的服務(MinIO, Elasticsearch, Redis, and MySQL):
docker compose -f docker/docker-compose-base.yml up -d
在
/etc/hosts
中加入以下程式碼,將 conf/service_conf.yaml 檔案中的所有 host 位址都解析為127.0.0.1
:127.0.0.1 es01 infinity mysql minio redis
-
如果無法存取 HuggingFace,可以把環境變數
HF_ENDPOINT
設為對應的鏡像網站:export HF_ENDPOINT=https://hf-mirror.com
5.啟動後端服務: 『`bash source .venv/bin/activate export PYTHONPATH=$(pwd) bash docker/launch_backend_service.sh
6. 安裝前端依賴:
『`bash
cd web
npm install
- 啟動前端服務:
『`bash
npm run dev
以下界面說明系統已成功啟動:_ ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
詳見 RAGFlow Roadmap 2025 。
RAGFlow 只有透過開源協作才能蓬勃發展。秉持這項精神,我們歡迎來自社區的各種貢獻。如果您有意參與其中,請查閱我們的 貢獻者指南 。
掃二維碼加入 RAGFlow 小助手,進 RAGFlow 交流群。