ragflow/README_tzh.md
Wanderson Pinto dos Santos b578451e6a
docs: update Docker build commands to specify platform as linux/amd64 (#6977)
### What problem does this PR solve?

Considering the ragflow_deps image is only available for `linux/amd64`
platform, if we try to run the docker build commands in ,macOS for
instance, without the platform flag, we get an error due to the
different platform. Specifying the platform in the docker build command
fixes this issue.

### Type of change

- [ ] Bug Fix (non-breaking change which fixes an issue)
- [ ] New Feature (non-breaking change which adds functionality)
- [X] Documentation Update
- [ ] Refactoring
- [ ] Performance Improvement
- [ ] Other (please describe):
2025-04-14 10:07:39 +08:00

14 KiB
Raw Blame History

English | 简体中文 | 日本語 | 한국어 | Bahasa Indonesia | Português (Brasil)

follow on X(Twitter) Static Badge docker pull infiniflow/ragflow:v0.17.2 Latest Release license

Document | Roadmap | Twitter | Discord | Demo

💡 RAGFlow 是什麼?

RAGFlow 是一款基於深度文件理解所建構的開源 RAGRetrieval-Augmented Generation引擎。 RAGFlow 可以為各種規模的企業及個人提供一套精簡的 RAG 工作流程結合大語言模型LLM針對用戶各類不同的複雜格式數據提供可靠的問答以及有理有據的引用。

🎮 Demo 試用

請登入網址 https://demo.ragflow.io 試用 demo。

🔥 近期更新

  • 2025-02-28 結合網路搜尋Tavily對於任意大模型實現類似 Deep Research 的推理功能.
  • 2025-02-05 更新「SILICONFLOW」的型號清單並新增 Deepseek-R1/DeepSeek-V3 的支援。
  • 2025-01-26 最佳化知識圖譜的擷取與應用,提供了多種配置選擇。
  • 2024-12-18 升級了 DeepDoc 的文檔佈局分析模型。
  • 2024-12-04 支援知識庫的 Pagerank 分數。
  • 2024-11-22 完善了 Agent 中的變數定義和使用。
  • 2024-11-01 對解析後的 chunk 加入關鍵字抽取和相關問題產生以提高回想的準確度。
  • 2024-08-22 支援用 RAG 技術實現從自然語言到 SQL 語句的轉換。

🎉 關注項目

點擊右上角的 Star 追蹤 RAGFlow可以取得最新發布的即時通知 !🌟

🌟 主要功能

🍭 "Quality in, quality out"

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

🍱 基於模板的文字切片

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

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

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

🍔 相容各類異質資料來源

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

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

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

🔎 系統架構

🎬 快速開始

📝 前提條件

  • CPU >= 4 核
  • RAM >= 16 GB
  • Disk >= 50 GB
  • Docker >= 24.0.0 & Docker Compose >= v2.26.1

    如果你並沒有在本機安裝 DockerWindows、Mac或 Linux, 可以參考文件 Install Docker Engine 自行安裝。

🚀 啟動伺服器

  1. 確保 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
    
  2. 克隆倉庫:

    $ git clone https://github.com/infiniflow/ragflow.git
    
  3. 進入 docker 資料夾,利用事先編譯好的 Docker 映像啟動伺服器:

Caution

所有 Docker 映像檔都是為 x86 平台建置的。目前,我們不提供 ARM64 平台的 Docker 映像檔。 如果您使用的是 ARM64 平台,請使用 這份指南 來建置適合您系統的 Docker 映像檔。

執行以下指令會自動下載 RAGFlow slim Docker 映像 v0.17.2-slim。請參考下表查看不同 Docker 發行版的說明。如需下載不同於 v0.17.2-slim 的 Docker 映像,請在執行 docker compose 啟動服務之前先更新 docker/.env 檔案內的 RAGFLOW_IMAGE 變數。例如,你可以透過設定 RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2 來下載 RAGFlow 鏡像的 v0.17.2 完整發行版。

$ cd ragflow/docker
# 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 image tag Image size (GB) Has embedding models? Stable?
v0.17.2 ≈9 ✔️ Stable release
v0.17.2-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
  1. 伺服器啟動成功後再次確認伺服器狀態:

    $ docker logs -f ragflow-server
    

    出現以下介面提示說明伺服器啟動成功:

         ____   ___    ______ ______ __
        / __ \ /   |  / ____// ____// /____  _      __
       / /_/ // /| | / / __ / /_   / // __ \| | /| / /
      / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
     /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/
    
     * Running on all addresses (0.0.0.0)
    

    如果您跳過這一步驟系統確認步驟就登入 RAGFlow你的瀏覽器有可能會提示 network anormal網路異常,因為 RAGFlow 可能並未完全啟動成功。

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

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

  3. service_conf.yaml.template 檔案的 user_default_llm 欄位設定 LLM factory並在 API_KEY 欄填入和你選擇的大模型相對應的 API key。

    詳見 llm_api_key_setup

    _好戲開始接著奏樂接著舞 _

🔧 系統配置

系統配置涉及以下三份文件:

請務必確保 .env 檔案中的變數設定與 service_conf.yaml.template 檔案中的設定保持一致!

如果無法存取映像網站 hub.docker.com 或模型網站 huggingface.co請依照 .env 註解修改 RAGFLOW_IMAGEHF_ENDPOINT

./docker/README 解釋了 service_conf.yaml.template 用到的環境變數設定和服務配置。

如需更新預設的 HTTP 服務連接埠(80), 可以在docker-compose.yml 檔案中將配置80:80 改為<YOUR_SERVING_PORT>:80

所有系統配置都需要透過系統重新啟動生效:

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

###把文檔引擎從 Elasticsearch 切換成為 Infinity

RAGFlow 預設使用 Elasticsearch 儲存文字和向量資料. 如果要切換為 Infinity, 可以按照下面步驟進行:

  1. 停止所有容器運作:

    $ docker compose -f docker/docker-compose.yml down -v
    

    Note: -v 將會刪除 docker 容器的 volumes已有的資料會被清空。

  2. 設定 docker/.env 目錄中的 DOC_ENGINEinfinity.

  3. 啟動容器:

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

Warning

Infinity 目前官方並未正式支援在 Linux/arm64 架構下的機器上運行.

🔧 原始碼編譯 Docker 映像(不含 embedding 模型)

本 Docker 映像大小約 2 GB 左右並且依賴外部的大模型和 embedding 服務。

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 --build-arg LIGHTEN=1 --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .

🔧 原始碼編譯 Docker 映像(包含 embedding 模型)

本 Docker 大小約 9 GB 左右。由於已包含 embedding 模型,所以只需依賴外部的大模型服務即可。

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 --build-arg NEED_MIRROR=1 -f Dockerfile -t infiniflow/ragflow:nightly .

🔨 以原始碼啟動服務

  1. 安裝 uv。如已安裝可跳過此步驟

    pipx install uv
    export UV_INDEX=https://mirrors.aliyun.com/pypi/simple
    
  2. 下載原始碼並安裝 Python 依賴:

    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow/
    uv sync --python 3.10 --all-extras # install RAGFlow dependent python modules
    
  3. 透過 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
    
  4. 如果無法存取 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
  1. 啟動前端服務: 『`bash npm run dev

    
    以下界面說明系統已成功啟動_
    
    ![](https://github.com/user-attachments/assets/0daf462c-a24d-4496-a66f-92533534e187)
    

📚 技術文檔

📜 路線圖

詳見 RAGFlow Roadmap 2025

🏄 開源社群

🙌 貢獻指南

RAGFlow 只有透過開源協作才能蓬勃發展。秉持這項精神,我們歡迎來自社區的各種貢獻。如果您有意參與其中,請查閱我們的 貢獻者指南

🤝 商務合作

👥 加入社區

掃二維碼加入 RAGFlow 小助手,進 RAGFlow 交流群。