20 KiB
Cloud | Document | Roadmap | Discord
💡 RAGFlow とは?
RAGFlow は、先進的なRAG(Retrieval-Augmented Generation)技術と Agent 機能を融合し、大規模言語モデル(LLM)に優れたコンテキスト層を構築する最先端のオープンソース RAG エンジンです。あらゆる規模の企業に対応可能な合理化された RAG ワークフローを提供し、統合型コンテキストエンジンと事前構築されたAgentテンプレートにより、開発者が複雑なデータを驚異的な効率性と精度で高精細なプロダクションレディAIシステムへ変換することを可能にします。
🎮 はじめに
当社のクラウドサービスをぜひお試しください:https://cloud.ragflow.io。
ローカルにデプロイする場合は、セルフホスティングを参照してください。
🔥 最新情報
-
2026-09-29 RAGFlow 1.0.0-rc1 をリリース。
-
2026-09-10 SitemapによるWebコンテンツの取り込みに対応。
-
2026-08-19 Knowledge Compilationを導入。ドキュメントおよびデータセット単位でWiki、Graph、Tree、PageIndex、Mind Map、Timeline、Skillsを生成できます。
-
2026-08-19 Low、Medium、High、Ultraの思考モードを備えたAgentic RAGを導入。
-
2026-07-02 Google BigQueryデータソースの取り込みと増分同期に対応。
-
2026-06-29 WhatsApp、DingTalk、WeComのチャットチャネルに対応。
-
2026-05-26 AgentがWebページを閲覧・操作できるBrowserコンポーネントを追加。
-
2026-04-21 7種類の組み込みデータ取り込みパイプラインテンプレートを追加。
-
2026-04-21 Agentアプリの公開、Sandboxでのコード実行、グラフ生成に対応。
-
2026-04-21 ユーザー単位のメモリ保存と検索に対応。
その他の更新についてはリリースノート全文を参照してください。
🎉 続きを楽しみに
⭐️ リポジトリをスター登録して、エキサイティングな新機能やアップデートを最新の状態に保ちましょう!すべての新しいリリースに関する即時通知を受け取れます! 🌟
🌟 主な特徴
🍭 "Quality in, quality out"
- 複雑な形式の非構造化データからの深い文書理解ベースの知識抽出。
- 無限のトークンから"干し草の山の中の針"を見つける。
🍱 テンプレートベースのチャンク化
- 知的で解釈しやすい。
- テンプレートオプションが豊富。
🧩 ナレッジコンパイル(Knowledge Compilation)
- ドキュメントやデータセットのコンテンツを、Wiki、Graph、Tree、PageIndex、Mind Map、Timeline、Skills などの構造化された成果物に整理します。
- コンパイルモデルと処理ルールを設定し、成果物の表示、更新、再生成を行えます。
🧠 Agentic Retrieval
- 複雑な質問を分析し、必要に応じて分解、ナレッジ検索、根拠確認を複数段階で行います。
- Low、Medium、High、Ultra の思考モードで、質問の複雑さに応じて検索と推論の深さを調整できます。
🌱 ハルシネーションが軽減された根拠のある引用
- 可視化されたテキストチャンキング(text chunking)で人間の介入を可能にする。
- 重要な参考文献のクイックビューと、追跡可能な引用によって根拠ある答えをサポートする。
🍔 多様なデータソースとの互換性
- Word、スライド、Excel、txt、画像、スキャンコピー、構造化データ、Web ページなどをサポート。
🛀 自動化された楽な RAG ワークフロー
- 個人から大企業まで対応できる RAG オーケストレーション(orchestration)。
- カスタマイズ可能な LLM とエンベッディングモデル。
- 複数の想起と融合された再ランク付け。
- 直感的な API によってビジネスとの統合がシームレスに。
🔎 システム構成
🎬 セルフホスティング
🐳 Docker デプロイ
📝 Docker デプロイの前提条件
- 推奨する開始時の構成:CPU 4コア、RAM 16 GB、空きディスク容量 50 GB。実際の要件は、ドキュメントエンジン、データ量、解析タスク、同時実行数によって異なります。ローカルモデルやその他のオプションコンポーネントでは、追加のリソースが必要になる場合があります。
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
- gVisor: Self-ManagedコンテナSandboxを使用する場合のみ必要です。
DockerデプロイではホストへのGoのインストールは不要です。Self-ManagedコンテナSandboxではgVisorのインストールと設定が必要ですが、他のSandboxプロバイダーではRAGFlowホストへのgVisorのインストールは不要です。
Tip
ローカルマシン(Windows、Mac、または Linux)に Docker をインストールしていない場合は、Docker Engine のインストール を参照してください。
🚀 サーバーを起動
-
vm.max_map_count>= 262144 であることを確認する:vm.max_map_countの値をチェックするには:sysctl vm.max_map_countvm.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 -
Go リリースタグに切り替え、Docker Compose で事前ビルド済み Go イメージを起動します:
Caution
現在、公式に提供されているすべての Docker イメージは x86 アーキテクチャ向けにビルドされており、ARM64 用の Docker イメージは提供されていません。 ARM64 アーキテクチャのオペレーティングシステムを使用している場合は、このドキュメントを参照して 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/healthzHTTP 200 レスポンスは準備完了を示します。
SVR_WEB_HTTP_PORTを変更した場合は、ヘルスチェック URL でそのポートを使用してください。起動に失敗した場合は、docker logs --tail 50 <service>で該当サービスのログを確認してください。 -
ウェブブラウザで、プロンプトに従ってサーバーの IP アドレスを入力し、RAGFlow にログインします。
デフォルトの設定を使用する場合、デフォルトの HTTP サービングポート
80は省略できるので、与えられたシナリオでは、http://IP_OF_YOUR_MACHINE(ポート番号は省略)だけを入力すればよい。 -
RAGFlow にログインした後、モデルプロバイダーページで LLM、Embedding、Reranker を追加し、モデル名、サービスアドレス、API キーを入力します。
詳しくは llm_api_key_setup を参照してください。
これで初期設定完了!ショーの開幕です!
⚙️ Docker の設定と調整
Go版のDockerデプロイでは docker/.env と docker/docker-compose.yml を使用し、キャッシュとCheckpointの保存にKvrocks、メッセージキューにNATS JetStreamを使用します。イメージ、ポート、パスワード、ドキュメントエンジン、モデルイメージの取得元を変更する場合は、Docker設定ガイドに従ってください。プラットフォームのサポートについて(注:macOSは現時点では非対応です。Linux x86_64ホストを使用してください)、Go Dockerイメージのビルドとプラットフォームサポートガイドを参照してください。
ドキュメントエンジンの切り替え、設定変更後のサービス再起動、既存データの保持または削除についても、上記のDocker設定ガイドに従ってください。
🔨 ソースコードからサービスを起動する方法
📝 ソースビルドの前提条件
-
go.modで指定されたGoバージョン(現在はGo 1.27)、Clang 20、LLD 20、CMake 4.0以降、およびPCRE2開発ファイルをインストールします。GoサービスはCGOとネイティブライブラリに依存し、build.shが必要なビルド設定を行います。 -
リポジトリをクローンし、必要なネイティブライブラリとモデルファイルを準備してからGoサービスをビルドします:
git clone https://github.com/infiniflow/ragflow.git cd ragflow/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このスクリプトはGoビルドに必要なネイティブライブラリとモデルリソースを準備し、
requestsとhuggingface-hubを使用します。同じリソースを別の方法で準備済みの場合は、この手順を省略できます。リポジトリルートから起動するとGoサービスはinternal/rag/res/deepdocを自動検出します。別のディレクトリから起動する場合は、DEEPDOC_MODEL_DIRにその絶対パスを設定してください。 -
Docker Composeで必要な依存サービス(Elasticsearch、MySQL、MinIO、NATS、Kvrocks、ClickHouse)を起動します:
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で Kvrocks に接続するため、提供されている設定では/etc/hostsの変更は不要です。 -
データベースのマイグレーション後、サービスを順番に起動します。各コマンドはリポジトリのルートから別々のターミナルで実行し、サービス用の4つのターミナルは開いたままにします:
./bin/ragflow_server --migrate RAGFLOW_DEV_MODE=true ./bin/ragflow_server --admin RAGFLOW_DEV_MODE=true ./bin/ragflow_server --ingestor RAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncer RAGFLOW_DEV_MODE=true ./bin/ragflow_server --api各起動モードの役割は次のとおりです:
--migrate: データベース移行を実行して終了します。--admin: 管理と初期化を行うAdminサービスを起動します。--ingestor: データ取り込みと解析を行うIngestorサービスを起動します。--syncer: データ同期を行うSyncerサービスを起動します。--api: Web UI、SDK、外部クライアント向けのAPIサービスを起動します。
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/healthzHTTP 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 はオープンソースのコラボレーションによって発展してきました。この精神に基づき、私たちはコミュニティからの多様なコントリビュートを受け入れています。 参加を希望される方は、まず コントリビューションガイドをご覧ください。



