Files
ragflow/README_tzh.md
T

18 KiB
Raw Blame History

README in English 简体中文版自述文件 繁體版中文自述文件 日本語のREADME 한국어 README en Français Bahasa Indonesia Português(Brasil) README in Arabic Türkçe README Русская версия README

follow on X(Twitter) Static Badge RAGFlow Docker image downloads Latest Release license

Cloud | Document | Roadmap | Discord

RAGFlow in the GitHub Octoverse
infiniflow%2Fragflow | Trendshift
📕 目錄

💡 RAGFlow 是什麼?

RAGFlow 是一款領先的開源 RAG(Retrieval-Augmented Generation)引擎,通過融合前沿的 RAG 技術與 Agent 能力,為大型語言模型提供卓越的上下文層。它提供可適配任意規模企業的端到端 RAG 工作流,憑藉融合式上下文引擎與預置的 Agent 模板,助力開發者以極致效率與精度將複雜數據轉化為高可信、生產級的人工智能系統。

🎮 快速開始

請登入網址 https://cloud.ragflow.io 試用雲服務。

如需本機部署,請參閱本機部署。

Chunking demonstration Agentic workflow demonstration

🔥 近期更新

  • 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,可以取得最新發布的即時通知 !🌟

RAGFlow feature updates

🌟 主要功能

🍭 "Quality in, quality out"

  • 基於深度文件理解,能夠從各類複雜格式的非結構化資料中提取真知灼見。
  • 真正在無限上下文(token)的場景下快速完成大海撈針測試。

🍱 基於模板的文字切片

  • 不只是智能,更重要的是可控可解釋。
  • 多種文字範本可供選擇

🧩 知識編譯(Knowledge Compilation)

  • 支援文件級和知識庫級編譯,將原始內容整理為結構化知識產物。
  • 透過編譯範本產生 Wiki、Graph、Tree、PageIndex、Mind Map、Timeline 及 Skills,滿足不同的知識組織與重用需求。
  • 支援設定編譯模型與處理規則,並檢視、更新和重新產生知識產物。

🧠 Agentic Retrieval

  • 針對複雜問題進行多步檢索:模型會分析問題,並在需要時執行問題拆解、知識檢索和證據核驗。
  • 透過多輪檢索與推理取得更完整的上下文,協助產生有依據的回答。
  • 支援 Low、Medium、High、Ultra 思考模式,可依問題複雜度控制檢索和推理深度。

⚙️ Go 原生服務架構

  • API、Admin、Ingestor 和 Syncer 由 Go 服務統一提供。
  • DeepDoc 在 Go 行程內執行,負責版面分析、OCR 和表格辨識。
  • Go 服務透過 CGO 呼叫原生文件解析程式庫和 ONNX Runtime。
  • MCP 和 Sandbox Executor 是可按需啟用的選用能力。

🌱 有理有據、最大程度降低幻覺(hallucination)

  • 文字切片過程視覺化,支援手動調整。
  • 有理有據:答案提供關鍵引用的快照並支持追根溯源。

🍔 相容各類異質資料來源

  • 支援豐富的文件類型,包括 Word 文件、PPT、excel 表格、txt 檔案、圖片、PDF、影印件、複印件、結構化資料、網頁等。

🛀 全程無憂、自動化的 RAG 工作流程

  • 全面優化的 RAG 工作流程可以支援從個人應用乃至超大型企業的各類生態系統。
  • 大語言模型 LLM 以及向量模型皆支援配置。
  • 基於多路召回、融合重排序。
  • 提供易用的 API,可輕鬆整合到各類企業系統。

🔎 系統架構

RAGFlow 系統架構

🎬 自行架設

🐳 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 自行安裝。

🚀 啟動伺服器

  1. 如果使用 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
    
  2. 克隆倉庫:

    git clone https://github.com/infiniflow/ragflow.git
    
  3. 切換至 Go 版發布標籤,並使用 Docker Compose 啟動伺服器:

Note

Go 映像的正式建置目標為 linux/amd64。平台限制和 macOS 要求請參閱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 推理。

  1. 啟動後檢查服務狀態和 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> 查看對應服務日誌。

  2. 在你的瀏覽器中輸入你的伺服器對應的 IP 位址並登入 RAGFlow。

    上面這個範例中,您只需輸入 http://IP_OF_YOUR_MACHINE 即可:未改動過設定則無需輸入連接埠(預設的 HTTP 服務連接埠 80)。

  3. 登入 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。

  1. 複製倉庫,並安裝上述建置工具:

    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow
    
  2. 使用 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 設為該目錄的絕對路徑。

  3. 啟動本機依賴服務,並確認 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。

  4. 先遷移資料庫,再依序啟動服務。每項命令都要在倉庫根目錄的獨立終端機執行;資料庫遷移完成後可關閉該終端機,其餘四個服務終端機需保持執行:

    終端機 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。

  5. 僅在開發前端時安裝 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 交流群。

RAGFlow assistant QR code