
### 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):
16 KiB
English | 简体中文 | 繁体中文 | 日本語 | 한국어 | Bahasa Indonesia | Português (Brasil)
Document | Roadmap | Twitter | Discord | Demo
💡 RAGFlow とは?
RAGFlow は、深い文書理解に基づいたオープンソースの RAG (Retrieval-Augmented Generation) エンジンである。LLM(大規模言語モデル)を組み合わせることで、様々な複雑なフォーマットのデータから根拠のある引用に裏打ちされた、信頼できる質問応答機能を実現し、あらゆる規模のビジネスに適した RAG ワークフローを提供します。
🎮 Demo
デモをお試しください:https://demo.ragflow.io。
🔥 最新情報
- 2025-02-28 インターネット検索 (TAVILY) と組み合わせて、あらゆる LLM の詳細な調査をサポートします。
- 2025-02-05 シリコン フローの St およびモデル リストを更新し、Deep Seek-R1/Deep Seek-V3 のサポートを追加しました。
- 2025-01-26 ナレッジ グラフの抽出と適用を最適化し、さまざまな構成オプションを提供します。
- 2024-12-18 DeepDoc のドキュメント レイアウト分析モデルをアップグレードします。
- 2024-12-04 ナレッジ ベースへのページランク スコアをサポートしました。
- 2024-11-22 エージェントでの変数の定義と使用法を改善しました。
- 2024-11-01 再現の精度を向上させるために、解析されたチャンクにキーワード抽出と関連質問の生成を追加しました。
- 2024-08-22 RAG を介して SQL ステートメントへのテキストをサポートします。
🎉 続きを楽しみに
⭐️ リポジトリをスター登録して、エキサイティングな新機能やアップデートを最新の状態に保ちましょう!すべての新しいリリースに関する即時通知を受け取れます! 🌟
🌟 主な特徴
🍭 "Quality in, quality out"
- 複雑な形式の非構造化データからの深い文書理解ベースの知識抽出。
- 無限のトークンから"干し草の山の中の針"を見つける。
🍱 テンプレートベースのチャンク化
- 知的で解釈しやすい。
- テンプレートオプションが豊富。
🌱 ハルシネーションが軽減された根拠のある引用
- 可視化されたテキストチャンキング(text chunking)で人間の介入を可能にする。
- 重要な参考文献のクイックビューと、追跡可能な引用によって根拠ある答えをサポートする。
🍔 多様なデータソースとの互換性
- Word、スライド、Excel、txt、画像、スキャンコピー、構造化データ、Web ページなどをサポート。
🛀 自動化された楽な RAG ワークフロー
- 個人から大企業まで対応できる RAG オーケストレーション(orchestration)。
- カスタマイズ可能な LLM とエンベッディングモデル。
- 複数の想起と融合された再ランク付け。
- 直感的な API によってビジネスとの統合がシームレスに。
🔎 システム構成
🎬 初期設定
📝 必要条件
- CPU >= 4 cores
- RAM >= 16 GB
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
ローカルマシン(Windows、Mac、または Linux)に Docker をインストールしていない場合は、Docker Engine のインストール を参照してください。
🚀 サーバーを起動
-
vm.max_map_count
>= 262144 であることを確認する:vm.max_map_count
の値をチェックするには:$ sysctl vm.max_map_count
vm.max_map_count
が 262144 より大きい値でなければリセットする。# In this case, we set it to 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 イメージをビルドし、サーバーを起動する:
Caution
現在、公式に提供されているすべての Docker イメージは x86 アーキテクチャ向けにビルドされており、ARM64 用の Docker イメージは提供されていません。 ARM64 アーキテクチャのオペレーティングシステムを使用している場合は、このドキュメントを参照して Docker イメージを自分でビルドしてください。
以下のコマンドは、RAGFlow Docker イメージの v0.17.2-slim エディションをダウンロードします。異なる RAGFlow エディションの説明については、以下の表を参照してください。v0.17.2-slim とは異なるエディションをダウンロードするには、docker/.env ファイルの RAGFLOW_IMAGE 変数を適宜更新し、docker compose を使用してサーバーを起動してください。例えば、完全版 v0.17.2 をダウンロードするには、RAGFLOW_IMAGE=infiniflow/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 |
-
サーバーを立ち上げた後、サーバーの状態を確認する:
$ docker logs -f ragflow-server
以下の出力は、システムが正常に起動したことを確認するものです:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0)
もし確認ステップをスキップして直接 RAGFlow にログインした場合、その時点で RAGFlow が完全に初期化されていない可能性があるため、ブラウザーがネットワーク異常エラーを表示するかもしれません。
-
ウェブブラウザで、プロンプトに従ってサーバーの IP アドレスを入力し、RAGFlow にログインします。
デフォルトの設定を使用する場合、デフォルトの HTTP サービングポート
80
は省略できるので、与えられたシナリオでは、http://IP_OF_YOUR_MACHINE
(ポート番号は省略)だけを入力すればよい。 -
service_conf.yaml.template で、
user_default_llm
で希望の LLM ファクトリを選択し、API_KEY
フィールドを対応する API キーで更新する。詳しくは llm_api_key_setup を参照してください。
これで初期設定完了!ショーの開幕です!
🔧 コンフィグ
システムコンフィグに関しては、以下のファイルを管理する必要がある:
- .env:
SVR_HTTP_PORT
、MYSQL_PASSWORD
、MINIO_PASSWORD
などのシステムの基本設定を保持する。 - service_conf.yaml.template: バックエンドのサービスを設定します。
- docker-compose.yml: システムの起動は docker-compose.yml に依存している。
.env ファイルの変更が service_conf.yaml.template ファイルの内容と一致していることを確認する必要があります。
./docker/README ファイル ./docker/README には、service_conf.yaml.template ファイルで ${ENV_VARS} として使用できる環境設定とサービス構成の詳細な説明が含まれています。
デフォルトの HTTP サービングポート(80)を更新するには、docker-compose.yml にアクセスして、80:80
を <YOUR_SERVING_PORT>:80
に変更します。
すべてのシステム設定のアップデートを有効にするには、システムの再起動が必要です:
$ docker compose -f docker-compose.yml up -d
Elasticsearch から Infinity にドキュメントエンジンを切り替えます
RAGFlow はデフォルトで Elasticsearch を使用して全文とベクトルを保存します。[Infinity]に切り替え(https://github.com/infiniflow/infinity/)、次の手順に従います。
-
実行中のすべてのコンテナを停止するには:
$ docker compose -f docker/docker-compose.yml down -v
Note:
-v
は docker コンテナのボリュームを削除し、既存のデータをクリアします。 -
docker/.env の「DOC _ ENGINE」を「infinity」に設定します。
-
起動コンテナ:
$ docker compose -f docker-compose.yml up -d
Warning
Linux/arm64 マシンでの Infinity への切り替えは正式にサポートされていません。
🔧 ソースコードで Docker イメージを作成(埋め込みモデルなし)
この Docker イメージのサイズは約 1GB で、外部の大モデルと埋め込みサービスに依存しています。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 --build-arg LIGHTEN=1 -f Dockerfile -t infiniflow/ragflow:nightly-slim .
🔧 ソースコードをコンパイルした Docker イメージ(埋め込みモデルを含む)
この Docker のサイズは約 9GB で、埋め込みモデルを含むため、外部の大モデルサービスのみが必要です。
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
🔨 ソースコードからサービスを起動する方法
-
uv をインストールする。すでにインストールされている場合は、このステップをスキップしてください:
pipx install uv
-
ソースコードをクローンし、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、MySQL)を起動する:
docker compose -f docker/docker-compose-base.yml up -d
/etc/hosts
に以下の行を追加して、conf/service_conf.yaml に指定されたすべてのホストを127.0.0.1
に解決します:127.0.0.1 es01 infinity mysql minio redis
-
HuggingFace にアクセスできない場合は、
HF_ENDPOINT
環境変数を設定してミラーサイトを使用してください:export HF_ENDPOINT=https://hf-mirror.com
-
バックエンドサービスを起動する:
source .venv/bin/activate export PYTHONPATH=$(pwd) bash docker/launch_backend_service.sh
-
フロントエンドの依存関係をインストールする:
cd web npm install
-
フロントエンドサービスを起動する:
npm run dev
以下の画面で、システムが正常に起動したことを示します:
📚 ドキュメンテーション
📜 ロードマップ
🏄 コミュニティ
🙌 コントリビュート
RAGFlow はオープンソースのコラボレーションによって発展してきました。この精神に基づき、私たちはコミュニティからの多様なコントリビュートを受け入れています。 参加を希望される方は、まず コントリビューションガイドをご覧ください。