18 KiB
Cloud | Document | Roadmap | Discord
📕 目錄
💡 RAGFlow 是什麼?
RAGFlow 是一款領先的開源 RAG(Retrieval-Augmented Generation)引擎,通過融合前沿的 RAG 技術與 Agent 能力,為大型語言模型提供卓越的上下文層。它提供可適配任意規模企業的端到端 RAG 工作流,憑藉融合式上下文引擎與預置的 Agent 模板,助力開發者以極致效率與精度將複雜數據轉化為高可信、生產級的人工智能系統。
🎮 快速開始
請登入網址 https://cloud.ragflow.io 試用雲服務。
如需本機部署,請參閱本機部署。
🔥 近期更新
-
2026-09-29 發布 RAGFlow 1.0.0-rc1。
-
2026-09-10 支援透過 Sitemap 接入網站內容。
-
2026-08-19 推出知識編譯,支援在文件級和知識庫級產生 Wiki、Graph、Tree、PageIndex、Mind Map、Timeline 及 Skills。
-
2026-08-19 推出 Agentic RAG,支援 Low、Medium、High、Ultra 四種思考模式。
-
2026-07-02 支援 Google BigQuery 資料來源接入與增量同步。
-
2026-06-29 支援 WhatsApp、釘釘和企業微信聊天管道。
-
2026-05-26 新增 Browser 元件,支援 Agent 自主瀏覽和操作網頁。
-
2026-04-21 提供七種預置資料攝取流水線範本。
-
2026-04-21 支援 Agent 應用程式發布、Sandbox 程式碼執行與圖表產生。
-
2026-04-21 支援使用者級記憶儲存和檢索。
更多更新請參閱完整發布記錄。
🎉 關注項目
⭐️ 點擊右上角的 Star 追蹤 RAGFlow,可以取得最新發布的即時通知 !🌟
🌟 主要功能
🍭 "Quality in, quality out"
- 基於深度文件理解,能夠從各類複雜格式的非結構化資料中提取真知灼見。
- 真正在無限上下文(token)的場景下快速完成大海撈針測試。
🍱 基於模板的文字切片
- 不只是智能,更重要的是可控可解釋。
- 多種文字範本可供選擇
🧩 知識編譯(Knowledge Compilation)
- 支援文件級和知識庫級編譯,將原始內容整理為結構化知識產物。
- 透過編譯範本產生 Wiki、Graph、Tree、PageIndex、Mind Map、Timeline 及 Skills,滿足不同的知識組織與重用需求。
- 支援設定編譯模型與處理規則,並檢視、更新和重新產生知識產物。
🧠 Agentic Retrieval
- 針對複雜問題進行多步檢索:模型會分析問題,並在需要時執行問題拆解、知識檢索和證據核驗。
- 透過多輪檢索與推理取得更完整的上下文,協助產生有依據的回答。
- 支援 Low、Medium、High、Ultra 思考模式,可依問題複雜度控制檢索和推理深度。
🌱 有理有據、最大程度降低幻覺(hallucination)
- 文字切片過程視覺化,支援手動調整。
- 有理有據:答案提供關鍵引用的快照並支持追根溯源。
🍔 相容各類異質資料來源
- 支援豐富的文件類型,包括 Word 文件、PPT、excel 表格、txt 檔案、圖片、PDF、影印件、複印件、結構化資料、網頁等。
🛀 全程無憂、自動化的 RAG 工作流程
- 全面優化的 RAG 工作流程可以支援從個人應用乃至超大型企業的各類生態系統。
- 大語言模型 LLM 以及向量模型皆支援配置。
- 基於多路召回、融合重排序。
- 提供易用的 API,可輕鬆整合到各類企業系統。
🔎 系統架構
🎬 自行架設
🐳 Docker 部署
📝 Docker 部署前提條件
- 建議起步配置:4 核 CPU、16 GB 記憶體和 50 GB 可用磁碟。實際資源需求取決於文件引擎、資料規模、解析任務和並發量;啟用本機模型或其他額外元件時,請同時滿足相應元件的資源需求。
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
- gVisor: 僅在使用 Self-Managed 容器 Sandbox 時需要安裝和設定。
Docker 部署無需在主機安裝 Go。使用 Self-Managed 容器 Sandbox 時需要額外安裝和設定 gVisor,其他 Sandbox Provider 不要求在 RAGFlow 主機安裝 gVisor。
Tip
如果你並沒有在本機安裝 Docker(Windows、Mac,或 Linux), 可以參考文件 Install Docker Engine 自行安裝。
🚀 啟動伺服器
-
如果使用 Elasticsearch,請將 Docker 主機的
vm.max_map_count設為至少 262144。使用 Infinity 時通常不需要執行此步驟:如需確認
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 -
切換至 Go 版發布標籤,並使用 Docker Compose 啟動伺服器:
Note
Go 映像的正式建置目標為
linux/amd64。平台支援(注意:macOS 暫不受 Go 後端支援,請使用 Linux x86_64 主機)請參閱Go Docker 映像建置與平台支援指南。
進入 Docker 部署目錄。
cd ragflow/docker
切換至 Go v1.0.0-rc1 發布標籤。
git checkout v1.0.0-rc1
在背景啟動 Go 服務及其相依服務。
docker compose -f docker-compose.yml up -d
預設 MySQL 設定下,Go 映像入口會先執行資料庫遷移,再透過 bin/ragflow_server 啟動 Syncer、Admin、API 和 Ingestor。
RAGFlow 開源版 1.0 的 DeepDoc 版面分析、OCR 和表格辨識使用 CPU 推理。
-
啟動後檢查服務狀態和 API 是否就緒:
docker ps上述命令會顯示相依服務的狀態。RAGFlow 本身未定義 Compose healthcheck;請透過 API 確認是否就緒:
curl -f http://localhost/api/v1/system/healthz返回 HTTP 200 表示 RAGFlow 已就緒。若修改了
SVR_WEB_HTTP_PORT,請在健康檢查網址中使用對應的連接埠。啟動失敗時,請使用docker logs --tail 50 <service>查看對應服務日誌。 -
在你的瀏覽器中輸入你的伺服器對應的 IP 位址並登入 RAGFlow。
上面這個範例中,您只需輸入 http://IP_OF_YOUR_MACHINE 即可:未改動過設定則無需輸入連接埠(預設的 HTTP 服務連接埠 80)。
-
登入 RAGFlow 後,在模型提供商頁面新增 LLM、Embedding 和 Reranker,並填寫對應的模型名稱、服務位址和 API key。
_好戲開始,接著奏樂接著舞! _
⚙️ Docker 設定與調整
Go 版 Docker 部署使用 docker/.env 和 docker/docker-compose.yml,以 Kvrocks 儲存快取和 Checkpoint,並使用 NATS JetStream 作為訊息佇列。映像、連接埠、密碼、文件引擎和模型映像來源,請參閱 Docker 設定說明。平台支援(注意:macOS 暫不受支援),請參閱 Go Docker 映像建置與平台支援指南。
切換文件引擎、更新設定、重新啟動服務,以及保留或清除既有資料等操作,也請依照上述 Docker 設定文件執行。
🔨 以原始碼啟動 Go 服務
📝 原始碼啟動前提條件
原始碼啟動需要安裝 go.mod 指定的 Go 版本(目前為 Go 1.27)、Clang 20、LLD 20、CMake >= 4.0、PCRE2 開發檔案,以及 CGO 所需的原生程式庫。僅開發 React 前端時需要 Node.js 和 npm。
-
複製倉庫,並安裝上述建置工具:
git clone https://github.com/infiniflow/ragflow.git cd ragflow -
使用 Go 依賴下載腳本準備原生程式庫、模型檔案和 tokenizer 資源,再編譯 Go 服務:
python3 -m venv /tmp/ragflow-go-download-venv /tmp/ragflow-go-download-venv/bin/python -m pip install requests huggingface-hub /tmp/ragflow-go-download-venv/bin/python ragflow_deps/download_deps.py bash build.sh --all下載腳本使用
requests和huggingface-hub來準備 Go 建置所需的原生程式庫和模型資源;如已透過其他方式準備好相同資源,可略過此步驟。從倉庫根目錄啟動時,Go 服務會自動尋找internal/rag/res/deepdoc;如需從其他目錄啟動,請將DEEPDOC_MODEL_DIR設為該目錄的絕對路徑。 -
啟動本機依賴服務,並確認 conf/service_conf.yaml 中的主機與連接埠可從主機存取:
sudo sysctl -w vm.max_map_count=262144 docker compose --env-file docker/.env -f docker/docker-compose-base.yml \ up -d --wait es01 mysql minio nats kvrocks clickhouse從原始碼啟動的 Go 服務透過
localhost:6379連線到 Compose 暴露的 Kvrocks;Docker 服務則使用容器網路中的主機名稱。使用提供的設定無需修改/etc/hosts。 -
先遷移資料庫,再依序啟動服務。每項命令都要在倉庫根目錄的獨立終端機執行;資料庫遷移完成後可關閉該終端機,其餘四個服務終端機需保持執行:
終端機 1:遷移資料庫
./bin/ragflow_server --migrate終端機 2:Admin,目標連接埠 9381
RAGFLOW_DEV_MODE=true ./bin/ragflow_server --admin終端機 3:Ingestor
RAGFLOW_DEV_MODE=true ./bin/ragflow_server --ingestor終端機 4:Syncer
RAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncer終端機 5:API,目標連接埠 9380
RAGFLOW_DEV_MODE=true ./bin/ragflow_server --api各啟動模式的作用如下:
--migrate:執行資料庫遷移,完成後退出。--admin:啟動 Admin 服務,負責管理和初始化操作。--ingestor:啟動 Ingestor 服務,負責資料攝取和解析任務。--syncer:啟動 Syncer 服務,負責資料同步任務。--api:啟動 API 服務,為 Web、SDK 和外部用戶端提供介面。
RAGFLOW_DEV_MODE=true僅供開發環境使用。它會停用程式碼版本與資料庫遷移版本之間的降級檢查,但不會執行遷移或變更資料庫結構,正式環境請勿設定。Admin 應先於其他服務啟動。遷移完成後,RAGFLOW_DEV_MODE=true bash build.sh --run可啟動 Admin、Ingestor 和 API,但不會啟動 Syncer;如需完整服務鏈,請另外執行RAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncer。 -
僅在開發前端時安裝 Node.js 和 npm,並啟動 React 前端:
cd web npm install API_PROXY_SCHEME=go npm run dev在另一個終端機確認 Go API 已就緒:
curl -f http://127.0.0.1:9380/api/v1/system/healthz返回 HTTP 200 表示 API 可以正常回應。開發結束時,在各服務終端機按
Ctrl+C停止對應程序。如需停止相依服務但保留容器,請執行docker compose --env-file docker/.env -f docker/docker-compose-base.yml stop es01 mysql minio nats kvrocks clickhouse;如需移除相依服務容器和 Compose 網路但保留具名資料卷,請執行docker compose --env-file docker/.env -f docker/docker-compose-base.yml down。
詳情請參閱從原始碼啟動服務。
📚 技術文檔
📜 路線圖
詳見 RAGFlow Roadmap 2026 。
🏄 開源社群
🙌 貢獻指南
RAGFlow 只有透過開源協作才能蓬勃發展。秉持這項精神,我們歡迎來自社區的各種貢獻。如果您有意參與其中,請查閱我們的 貢獻者指南 。
🤝 商務合作
👥 加入社區
掃二維碼加入 RAGFlow 小助手,進 RAGFlow 交流群。



