## 🚀 Flexible GraphRAG
**Flexible GraphRAG** は、ドキュメント処理、知識グラフの自動構築、RAG と GraphRAG のセットアップ、ハイブリッド検索(全文、ベクトル、グラフ)、および AI Q&A クエリ機能をサポートするプラットフォームです。
<p align="center">
<a href="./screen-shots/react/chat-webpage.png">
</a>
</p>
<p align="center"><em>Flexible GraphRAG AI チャットタブ。ウェブページのデータソースから生成されたグラフが Neo4j に表示されます。</em></p>
## 🚀 クイックスタート
Flexible GraphRAG を始めるには、まず必要な前提条件をインストールし、セットアップを行います。詳細な手順は以下の通りです。
### 前提条件
#### 必須
- Python 3.10+ (3.10、3.11、3.12、3.13 をサポート)
- UV パッケージマネージャー
- Node.js 16+
- npm または yarn
- Neo4j グラフデータベース
- Ollama または API キー付きの OpenAI (LLM 処理用)
#### オプション (データソースによる)
- CMIS データソースを使用する場合のみ、CMIS (Content Management Interoperability Services) 準拠のリポジトリ (例: Alfresco)
- Alfresco データソースを使用する場合のみ、Alfresco リポジトリ
- ファイルシステムデータソースは追加のセットアップ不要
### セットアップ
#### 🐳 Docker デプロイメント
Docker デプロイメントには主に 2 つのアプローチがあります。
##### オプション A: データベースを Docker 内に、アプリをスタンドアロンで (ハイブリッド)
**最適なシナリオ**: 開発、外部コンテンツ管理システム、柔軟なデプロイメント
```bash
# 必要なデータベースのみをデプロイ
docker-compose -f docker/docker-compose.yaml -p flexible-graphrag up -d
# docker-compose.yaml で不要なサービスをコメントアウト:
# - includes/neo4j.yaml # 独自の Neo4j を使用する場合はコメントアウト
# - includes/kuzu.yaml # Kuzu を使用しない場合はコメントアウト
# - includes/qdrant.yaml # ベクトル用に Neo4j、Elasticsearch、または OpenSearch を使用する場合はコメントアウト
# - includes/elasticsearch.yaml # Elasticsearch を使用しない場合はコメントアウト
# - includes/elasticsearch-dev.yaml # Elasticsearch を使用しない場合はコメントアウト
# - includes/kibana.yaml # Elasticsearch を使用しない場合はコメントアウト
# - includes/opensearch.yaml # 使用しない場合はコメントアウト
# - includes/alfresco.yaml # 独自の Alfresco インストールを使用する場合はコメントアウト
# - includes/app-stack.yaml # バックエンドと UI を Docker 内に配置する場合はコメントを外す
# - includes/proxy.yaml # バックエンドと UI を Docker 内に配置する場合はコメントを外す
# (注: app-stack.yaml には、ベクトル、グラフ、検索、LLM をカスタマイズするための環境設定が含まれています)
# バックエンドと UI クライアントを Docker 外で実行
cd flexible-graphrag
uv run start.py
ユースケース:
- ✅ ファイルアップロード: ウェブインターフェイスを通じた直接のファイルアップロード
- ✅ 外部 CMIS/Alfresco: 既存のコンテンツ管理システムに接続
- ✅ 開発: 簡単なデバッグとホットリロード
- ✅ 混合環境: コンテナ内のデータベース、ホスト上のアプリ
オプション B: 全スタックを Docker 内に (完全)
最適なシナリオ: 本番デプロイメント、分離された環境、コンテナ化されたコンテンツソース
docker-compose -f docker/docker-compose.yaml -p flexible-graphrag up -d
機能:
- ✅ すべてのデータベースが事前に構成されている (Neo4j、Kuzu、Qdrant、Elasticsearch、OpenSearch、Alfresco)
- ✅ コンテナ内のバックエンド + 3 つの UI クライアント (Angular、React、Vue)
- ✅ 統一された URL での NGINX リバースプロキシ
- ✅ 永続的なデータボリューム
- ✅ 内部コンテナネットワーキング
起動後のサービス URL:
- Angular UI: http://localhost:8070/ui/angular/
- React UI: http://localhost:8070/ui/react/
- Vue UI: http://localhost:8070/ui/vue/
- バックエンド API: http://localhost:8070/api/
- Neo4j Browser: http://localhost:7474/
- Kuzu Explorer: http://localhost:8002/
データソースワークフロー:
- ✅ ファイルアップロード: ウェブインターフェイスを通じた直接のファイルアップロード (ドラッグアンドドロップまたはクリックでファイル選択ダイアログを開く)
- ✅ Alfresco/CMIS: 既存の Alfresco システムまたは CMIS リポジトリに接続
サービスの停止
すべての Docker サービスを停止して削除するには:
docker-compose -f docker/docker-compose.yaml -p flexible-graphrag down
設定変更の一般的なワークフロー:
docker-compose -f docker/docker-compose.yaml -p flexible-graphrag down
docker-compose -f docker/docker-compose.yaml -p flexible-graphrag up -d
設定
- モジュール式デプロイメント:
docker/docker-compose.yaml で不要なサービスをコメントアウトします。
- 環境設定 (アプリスタックデプロイメント用):
- 環境変数は
docker/includes/app-stack.yaml で直接構成されます。
- データベース接続には、コンテナ間通信のために
host.docker.internal を使用します。
- デフォルトの設定には、OpenAI/Ollama LLM 設定とデータベース接続が含まれています。
詳細な Docker 設定については、docker/README.md を参照してください。
🔧 ローカル開発セットアップ
環境設定
環境ファイルを作成 (クロスプラットフォーム):
cp flexible-graphrag/env-sample.txt flexible-graphrag/.env
copy flexible-graphrag\env-sample.txt flexible-graphrag\.env
.env をデータベースの資格情報と API キーで編集します。
Python バックエンドのセットアップ
-
バックエンドディレクトリに移動します:
cd project-directory/flexible-graphrag
-
UV を使用して仮想環境を作成し、アクティブ化します:
uv venv
.\.venv\Scripts\Activate
source .venv/bin/activate
-
Python 依存関係をインストールします:
cd flexible-graphrag
uv pip install -r requirements.txt
-
サンプルをコピーして .env ファイルを作成し、カスタマイズします:
cp env-sample.txt .env
copy env-sample.txt .env
.env を特定の設定で編集します。詳細なセットアップガイドについては、docs/ENVIRONMENT-CONFIGURATION.md を参照してください。
フロントエンドのセットアップ
本番モード (バックエンドがフロントエンドを提供しない):
- バックエンド API: http://localhost:8000 (FastAPI サーバーのみ)
- フロントエンドのデプロイメント: 別々のデプロイメント (nginx、Apache、静的ホスティングなど)
- スタンドアロンと Docker の両方のフロントエンドが、バックエンドを
localhost:8000 として指します。
開発モード (フロントエンドとバックエンドが別々に実行される):
- バックエンド API: http://localhost:8000 (FastAPI サーバーのみ)
- Angular 開発: http://localhost:4200 (ng serve)
- React 開発: http://localhost:5173 (npm run dev)
- Vue 開発: http://localhost:5174 (npm run dev)
使用するフロントエンドオプションを選択します。
React フロントエンド
- React フロントエンドディレクトリに移動します:
cd flexible-graphrag-ui/frontend-react
- Node.js 依存関係をインストールします:
npm install
- 開発サーバーを起動します (Vite を使用):
npm run dev
React フロントエンドは http://localhost:5174 で利用可能になります。
Angular フロントエンド
- Angular フロントエンドディレクトリに移動します:
cd flexible-graphrag-ui/frontend-angular
- Node.js 依存関係をインストールします:
npm install
- 開発サーバーを起動します (Angular CLI を使用):
npm start
Angular フロントエンドは http://localhost:4200 で利用可能になります。
注意: ng build が予算エラーを表示する場合は、開発には npm start を使用してください。
Vue フロントエンド
- Vue フロントエンドディレクトリに移動します:
cd flexible-graphrag-ui/frontend-vue
- Node.js 依存関係をインストールします:
npm install
- 開発サーバーを起動します (Vite を使用):
npm run dev
Vue フロントエンドは http://localhost:3000 で利用可能になります。
アプリケーションの実行
Python バックエンドの起動
プロジェクトのルートディレクトリから:
cd flexible-graphrag
uv run start.py
バックエンドは http://localhost:8000 で利用可能になります。
好みのフロントエンドの起動
選択したフロントエンドフレームワークのフロントエンドセットアップセクションの指示に従ってください。
フロントエンドのデプロイメント
フロントエンドのビルド
cd flexible-graphrag-ui/frontend-angular
ng build
cd flexible-graphrag-ui/frontend-react
npm run build
cd flexible-graphrag-ui/frontend-vue
npm run build
Angular ビルドの注意事項:
- Angular では予算警告が一般的で、開発では通常無視して安全です。
- 本番環境では、バンドルサイズを最適化するか、
angular.json の予算制限を調整することを検討してください。
- 開発モード: ビルド問題を回避するために
npm start を使用してください。
本番サーバーの起動
cd flexible-graphrag
uv run start.py
バックエンドは以下を提供します:
/api/* 以下の API エンドポイント
- データ処理と検索に重点を置いた独立した動作
- フロントエンド提供の懸念事項からの明確な分離
バックエンド API エンドポイント:
- API ベース: http://localhost:8000/api/
- API エンドポイント:
/api/ingest、/api/search、/api/query、/api/status など
- ヘルスチェック: http://localhost:8000/api/health
フロントエンドのデプロイメント:
- 手動デプロイメント: 好みの方法 (nginx、Apache、静的ホスティングなど) を使用してフロントエンドを個別にデプロイします。
- フロントエンドの構成: スタンドアロンと Docker の両方のフロントエンドが、バックエンドを
http://localhost:8000/api/ として指します。
- 各フロントエンドは、必要に応じて個別にビルドおよびデプロイできます。
✨ 主な機能
ハイブリッド検索
ベクトル埋め込み、BM25 全文検索、およびグラフトラバーサルを組み合わせて、包括的なドキュメント検索を行います。
知識グラフ GraphRAG
ドキュメントからエンティティと関係を抽出し、グラフデータベースにグラフを作成して、グラフベースの推論を行います。
構成可能なアーキテクチャ
LlamaIndex は、ベクトルデータベース、グラフデータベース、検索エンジン、および LLM プロバイダーの抽象化を提供します。
マルチソース取り込み
Docling または LlamaParse ドキュメント解析を使用して、13 のデータソース (ファイルアップロード、クラウドストレージ、エンタープライズリポジトリ、ウェブソース) からのドキュメントを処理します。
FastAPI サーバーと REST API
ドキュメントの取り込み、ハイブリッド検索、および AI Q&A クエリのための REST API を備えた FastAPI サーバーです。
MCP サーバー
Claude Desktop などの MCP クライアントに、ドキュメントとテキストの取り込み、ハイブリッド検索、および AI Q&A クエリのためのツールを提供する MCP サーバーです。
UI クライアント
Angular、React、および Vue UI クライアントは、データソース (ファイルシステム、Alfresco、CMIS など) の選択、ドキュメントの取り込み、ハイブリッド検索、および AI Q&A クエリをサポートします。
Docker デプロイメントの柔軟性
スタンドアロンと Docker の両方のデプロイメントモードをサポートします。Docker インフラストラクチャは、docker-compose を介したモジュール式データベース選択を提供し、ベクトル、グラフ、および検索データベースを単一のコメントで含めたり除外したりできます。ハイブリッドデプロイメント (Docker 内のデータベース、スタンドアロンのアプリ) と完全なコンテナ化のどちらかを選択できます。
📦 インストール
インストール手順は「セットアップ」セクションに記載されています。
💻 使用例
システムは、ドキュメント処理とクエリ用のタブ付きインターフェイスを提供します。以下の手順に従って操作します。
1. ソースタブ
データソースを構成し、処理するファイルを選択します。
ファイルアップロードデータソース
- 選択: データソースのドロップダウンから「ファイルアップロード」を選択します。
- ファイルの追加:
- ドラッグアンドドロップ: ファイルをアップロードエリアに直接ドラッグします。
- クリックして選択: アップロードエリアをクリックしてファイル選択ダイアログを開きます (マルチ選択をサポート)。
- 注意: ダイアログで選択した後に新しいファイルをドラッグアンドドロップした場合、ドラッグしたファイルのみが使用されます。
- サポートされる形式: PDF、DOCX、XLSX、PPTX、TXT、MD、HTML、CSV、PNG、JPG など
- 次の手順: 「処理を構成 →」をクリックして、処理タブに進みます。
Alfresco リポジトリ
- 選択: データソースのドロップダウンから「Alfresco リポジトリ」を選択します。
- 構成:
- Alfresco ベース URL (例:
http://localhost:8080/alfresco)
- ユーザー名とパスワード
- パス (例:
/Sites/example/documentLibrary)
- 次の手順: 「処理を構成 →」をクリックして、処理タブに進みます。
CMIS リポジトリ
- 選択: データソースのドロップダウンから「CMIS リポジトリ」を選択します。
- 構成:
- CMIS リポジトリ URL (例:
http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom)
- ユーザー名とパスワード
- フォルダパス (例:
/Sites/example/documentLibrary)
- 次の手順: 「処理を構成 →」をクリックして、処理タブに進みます。
2. 処理タブ
選択したドキュメントを処理し、進捗状況を監視します。
- 処理の開始: 「処理を開始」をクリックして、ドキュメントの取り込みを開始します。
- 進捗状況の監視: 各ファイルのリアルタイムの進捗バーを表示します。
- ファイル管理:
- チェックボックスを使用してファイルを選択します。
- 「選択したファイルを削除 (N)」をクリックして、選択したファイルをリストから削除します。
- 注意: これにより、処理キューからファイルが削除されますが、システムからは削除されません。
- 処理パイプライン: ドキュメントは、Docling 変換、ベクトルインデックス作成、および知識グラフ作成を通じて処理されます。
3. 検索タブ
処理済みのドキュメントに対して検索を実行します。
ハイブリッド検索
- 目的: 最も関連性の高いドキュメントの抜粋を見つけてランク付けします。
- 使用方法: 検索用語またはフレーズを入力します (例: 「機械学習アルゴリズム」、「財務予測」)。
- アクション: 「検索」ボタンをクリックします。
- 結果: 関連性スコアとソース情報付きのドキュメント抜粋のランク付きリストが表示されます。
- 最適なシナリオ: 研究、事実確認、ドキュメント全体で特定の情報を見つける場合
Q&A クエリ
- 目的: 自然言語の質問に対する AI 生成の回答を取得します。
- 使用方法: 自然言語の質問を入力します (例: 「研究論文の主な発見は何ですか?」)。
- アクション: 「質問する」ボタンをクリックします。
- 結果: 複数のドキュメントからの情報を統合した AI 生成の叙述的な回答が表示されます。
- 最適なシナリオ: 要約、分析、複雑なトピックの概要を取得する場合
4. チャットタブ
ドキュメント Q&A 用の対話型会話インターフェイスです。
- チャットインターフェイス:
- あなたの質問: 右側に垂直に表示されます。
- AI の回答: 左側に垂直に表示されます。
- 使用方法: 質問を入力し、Enter キーを押すか、送信ボタンをクリックします。
- 会話履歴: すべての質問と回答がチャット履歴に保存されます。
- 履歴のクリア: 「履歴をクリア」ボタンをクリックして、新しい会話を開始します。
- 最適なシナリオ: 反復的な質問、フォローアップクエリ、会話型のドキュメント探索
📚 ドキュメント
システムコンポーネント
FastAPI バックエンド (/flexible-graphrag)
- REST API サーバー: ドキュメントの取り込み、検索、および Q&A のためのエンドポイントを提供します。
- ハイブリッド検索エンジン: ベクトル類似度、BM25、およびグラフトラバーサルを組み合わせます。
- ドキュメント処理: Docling 統合による高度なドキュメント変換。
- 構成可能なアーキテクチャ: すべてのコンポーネントの環境ベースの構成。
- 非同期処理: リアルタイムの進捗更新を伴うバックグラウンドタスク処理。
MCP サーバー (/flexible-graphrag-mcp)
- Claude Desktop 統合: AI アシスタントワークフローのためのモデルコンテキストプロトコルサーバー。
- 二重トランスポート: デバッグ用の HTTP モード、Claude Desktop 用の stdio モード。
- ツールセット: ドキュメント処理、検索、およびシステム管理のための 9 つの専用ツール。
- 複数のインストール方法: pipx システムインストールまたは uvx 無インストール実行。
UI クライアント (/flexible-graphrag-ui)
- Angular フロントエンド: TypeScript を使用したマテリアルデザイン。
- React フロントエンド: Vite と TypeScript を使用した最新の React。
- Vue フロントエンド: Vuetify と TypeScript を使用した Vue 3 コンポジション API。
- 統一された機能: すべてのクライアントは、非同期処理、進捗追跡、およびキャンセルをサポートします。
Docker インフラストラクチャ (/docker)
- モジュール式データベース選択: 単一行のコメントで、ベクトル、グラフ、および検索データベースを含めたり除外したりできます。
- 柔軟なデプロイメント: ハイブリッドモード (Docker 内のデータベース、アプリはスタンドアロン) または完全なコンテナ化。
- NGINX リバースプロキシ: 適切なルーティングを伴うすべてのサービスへの統一アクセス。
- データベースダッシュボード: Kibana (Elasticsearch)、OpenSearch Dashboards、Neo4j Browser、および Kuzu Explorer の統合ウェブインターフェイス。
データソース
Flexible GraphRAG は、ドキュメントを知識ベースに取り込むために、13 の異なるデータソースをサポートします。
ファイル & アップロードソース
- ファイルアップロード - ドラッグアンドドロップをサポートするウェブインターフェイスを通じた直接のファイルアップロード
クラウドストレージソース
- Amazon S3 - AWS S3 バケットの統合
- Google Cloud Storage (GCS) - Google Cloud のストレージバケット
- Azure Blob Storage - Microsoft Azure のブロブコンテナ
- OneDrive - Microsoft OneDrive の個人/ビジネスストレージ
- SharePoint - Microsoft SharePoint のドキュメントライブラリ
- Box - Box.com のクラウドストレージ
- Google Drive - Google Drive のファイルストレージ
エンタープライズリポジトリソース
- CMIS (Content Management Interoperability Services) - 業界標準のコンテンツリポジトリインターフェイス
- Alfresco - Alfresco ECM/コンテンツリポジトリ
ウェブソース
- ウェブページ - ウェブ URL からコンテンツを抽出
- Wikipedia - タイトルまたは URL で Wikipedia 記事を取り込む
- YouTube - YouTube ビデオのトランスクリプトを処理
各データソースには以下が含まれます:
- 構成フォーム: 資格情報と設定のための使いやすいインターフェイス
- 進捗追跡: ファイルごとのリアルタイムの進捗インジケーター
- 柔軟な認証: さまざまな認証方法 (API キー、OAuth、サービスアカウント) をサポート
ドキュメント処理オプション
すべてのデータソースは、2 つのドキュメントパーサーオプションをサポートします。
Docling (デフォルト):
- オープンソースのローカル処理
- API コストがかからない無料
- 画像とスキャンドキュメントの組み込み OCR
- 設定方法:
DOCUMENT_PARSER=docling
LlamaParse:
- 高度な AI を備えたクラウドベースの API サービス
- Claude Sonnet 3.5 によるマルチモーダル解析
- 3 つのモードが利用可能:
parse_page_without_llm - 1 クレジット/ページ
parse_page_with_llm - 3 クレジット/ページ (デフォルト)
parse_page_with_agent - 10 - 90 クレジット/ページ
- 設定方法:
DOCUMENT_PARSER=llamaparse + LLAMAPARSE_API_KEY
- API キーは LlamaCloud から取得します。
両方のパーサーは、PDF、オフィスドキュメント (DOCX、XLSX、PPTX)、画像、HTML などを、インテリジェントな形式検出でサポートします。
サポートされるファイル形式
システムは、Docling (高度な処理) と直接のテキスト処理の間のインテリジェントなルーティングにより、15 以上のドキュメント形式を処理します。
ドキュメント形式 (Docling 処理)
- PDF:
.pdf - 高度なレイアウト分析、テーブル抽出、数式認識
- Microsoft Office:
.docx, .xlsx, .pptx - 完全な構造の保存とコンテンツの抽出
- ウェブ形式:
.html, .htm, .xhtml - マークアップ構造の分析
- データ形式:
.csv, .xml, .json - 構造化データの処理
- ドキュメント:
.asciidoc, .adoc - マークアップを保存した技術ドキュメント
画像形式 (Docling OCR)
- 標準画像:
.png, .jpg, .jpeg - OCR テキスト抽出
- 専門画像:
.tiff, .tif, .bmp, .webp - レイアウトを考慮した OCR 処理
テキスト形式 (直接処理)
- 平文:
.txt - 最適なチャンク化のための直接の取り込み
- Markdown:
.md, .markdown - 技術ドキュメントのための形式を保存
処理の知能
- 適応的な出力: テーブルは Markdown に変換され、テキストコンテンツは平文に変換されて、最適なエンティティ抽出が行われます。
- 形式検出: ファイル拡張子とコンテンツ分析に基づく自動ルーティング
- フォールバック処理: サポートされていない形式に対する適切な対応
データベース構成
Flexible GraphRAG は、ハイブリッド検索機能のために 3 種類のデータベースを使用します。それぞれは、環境変数を介して独立して構成できます。
検索データベース (全文検索)
構成: SEARCH_DB と SEARCH_DB_CONFIG 環境変数で設定します。
-
BM25 (組み込み): TF-IDF ランキングを備えたローカルファイルベースの BM25 全文検索
-
Elasticsearch: 高度なアナライザー、ファセット検索、およびリアルタイム分析を備えたエンタープライズ検索エンジン
-
OpenSearch: AWS 主導のオープンソースフォークで、ネイティブのハイブリッドスコアリング (ベクトル + BM25) と k-NN アルゴリズムを備えています。
-
None: 全文検索を無効にする (ベクトル検索のみ)
ベクトルデータベース (意味検索)
構成: VECTOR_DB と VECTOR_DB_CONFIG 環境変数で設定します。
⚠️ ベクトル次元の互換性
重要: 異なる埋め込みモデル (例: OpenAI ↔ Ollama) を切り替える場合、次元の互換性の問題から、既存のベクトルインデックスを削除する必要があります。
- OpenAI: 1536 次元 (text-embedding-3-small) または 3072 次元 (text-embedding-3-large)
- Ollama: 384 次元 (all-minilm、デフォルト)、768 次元 (nomic-embed-text)、または 1024 次元 (mxbai-embed-large)
- Azure OpenAI: OpenAI と同じ (1536 または 3072 次元)
各データベースの詳細なクリーンアップ手順については、VECTOR-DIMENSIONS.md を参照してください。
サポートされるベクトルデータベース
-
Neo4j: 別のベクトル構成でベクトルデータベースとして使用できます。
- ダッシュボード: Neo4j Browser (http://localhost:7474) で Cypher クエリとグラフ可視化
- 構成:
VECTOR_DB=neo4j
VECTOR_DB_CONFIG={"uri": "bolt://localhost:7687", "username": "neo4j", "password": "your_password", "index_name": "hybrid_search_vector"}
-
Qdrant: 高度なフィルタリングを備えた専用のベクトルデータベース
-
Elasticsearch: 別のベクトル構成でベクトルデータベースとして使用できます。
-
OpenSearch: 別のベクトル構成でベクトルデータベースとして使用できます。
-
Chroma: 二重デプロイメントモードを備えたオープンソースのベクトルデータベース
- ダッシュボード: Swagger UI (http://localhost:8001/docs/) で API テストと管理 (HTTP モード)
- 構成 (ローカルモード):
VECTOR_DB=chroma
VECTOR_DB_CONFIG={"persist_directory": "./chroma_db", "collection_name": "hybrid_search"}
- 構成 (HTTP モード):
VECTOR_DB=chroma
VECTOR_DB_CONFIG={"host": "localhost", "port": 8001, "collection_name": "hybrid_search"}
-
Milvus: クラウドネイティブでスケーラブルなベクトルデータベース、類似性検索に最適
-
Weaviate: 意味機能とデータエンリッチメントを備えたベクトル検索エンジン
-
Pinecone: リアルタイムアプリケーションに最適化された管理型ベクトルデータベースサービス
- ダッシュボード: Pinecone Console (ウェブベース) でインデックスとネームスペース管理
- ローカル情報ダッシュボード: http://localhost:3004 (Docker 使用時)
- 構成:
VECTOR_DB=pinecone
VECTOR_DB_CONFIG={"api_key": "your_api_key", "region": "us-east-1", "cloud": "aws", "index_name": "hybrid-search"}
-
PostgreSQL: pgvector 拡張機能を備えた従来のデータベース、ベクトル類似性検索に対応
- ダッシュボード: pgAdmin (http://localhost:5050) でデータベース管理、ベクトルクエリ、および類似性検索
- 構成:
VECTOR_DB=postgres
VECTOR_DB_CONFIG={"host": "localhost", "port": 5433, "database": "postgres", "username": "postgres", "password": "your_password"}
-
LanceDB: 高性能 ML アプリケーション向けに設計された最新の軽量ベクトルデータベース
GraphRAG なしの RAG
知識グラフ抽出なしのより単純なデプロイメントの場合は、以下のように構成します:
VECTOR_DB=qdrant
SEARCH_DB=elasticsearch
GRAPH_DB=none
ENABLE_KNOWLEDGE_GRAPH=false
結果:
- ベクトル類似性検索 (意味検索)
- 全文検索 (キーワードベース)
- グラフトラバーサルなし
- 高速な処理 (グラフ抽出なし)
グラフデータベース (知識グラフ / GraphRAG)
構成: GRAPH_DB と GRAPH_DB_CONFIG 環境変数で設定します。
-
Neo4j Property Graph: Cypher クエリを備えた主要な知識グラフストレージ
-
Kuzu: クエリ速度とスケーラビリティを重視して構築された組み込み型グラフデータベース。非常に大規模なグラフデータベース上の複雑な分析ワークロードを処理するように最適化されています。プロパティグラフデータモデルと Cypher クエリ言語をサポートします。
-
FalkorDB: "GraphBLAS を使用した超高速グラフデータベース。疎な隣接行列グラフ表現を用いています。私たちの目標は、LLM (GraphRAG) 用の最高の知識グラフを提供することです。"
-
ArcadeDB: グラフ、ドキュメント、キーバリュー、および検索機能をサポートするマルチモデルデータベース。SQL と Cypher クエリをサポートします。
- ダッシュボード: ArcadeDB Studio (http://localhost:2480) でグラフ可視化、SQL/Cypher クエリ、およびデータベース管理
- 構成:
GRAPH_DB=arcadedb
GRAPH_DB_CONFIG={"host": "localhost", "port": 2480, "username": "root", "password": "password", "database": "flexible_graphrag", "query_language": "sql"}
-
MemGraph: ストリーミングデータと高度なグラフアルゴリズムをネイティブにサポートするリアルタイムグラフデータベース
-
NebulaGraph: 大規模データ用に設計された分散型グラフデータベース。水平スケーラビリティを備えています。
- ダッシュボード: NebulaGraph Studio (http://localhost:7001) でグラフ探索と nGQL クエリ
- 構成:
GRAPH_DB=nebula
GRAPH_DB_CONFIG={"space": "flexible_graphrag", "host": "localhost", "port": 9669, "username": "root", "password": "nebula"}
-
Amazon Neptune: プロパティグラフと RDF モデルの両方をサポートする完全管理型グラフデータベースサービス
-
Amazon Neptune Analytics: 大規模グラフ分析用のサーバーレスグラフ分析エンジン。openCypher をサポートします。
-
None: 知識グラフ抽出を無効にして、RAG のみのモードにする
LLM 構成
構成: LLM_PROVIDER とプロバイダー固有の環境変数で設定します。
LLM プロバイダー
-
OpenAI: 構成可能なエンドポイントを備えた GPT モデル
-
Ollama: プライバシーとコントロールのためのローカル LLM デプロイメント
-
Azure OpenAI: エンタープライズ向けの OpenAI 統合
-
Anthropic Claude: 複雑な推論用の Claude モデル
-
Google Gemini: Google の最新の言語モデル
LLM パフォーマンスの推奨事項
LlamaIndex での一般的なパフォーマンス: OpenAI vs Ollama
OpenAI GPT-4o-mini と Ollama モデル (llama3.1:8b、llama3.2:latest、gpt-oss:20b) を使用したテストに基づくと、LlamaIndex の操作では、OpenAI が Ollama モデルを一貫して上回ります。
Ollama 構成
Ollama を LLM プロバイダーとして使用する場合、Ollama サービスを開始する前に、システム全体の環境変数を構成する必要があります。これらの設定は、パフォーマンスを最適化し、並列処理を有効にします。
重要な要件:
- 環境変数を システム全体で 構成します (Flexible GraphRAG の
.env ファイルではなく)。
OLLAMA_NUM_PARALLEL=4 は、並列ドキュメント処理に 不可欠 です。
- 環境変数を変更した後は、常に Ollama サービスを再起動します。
完全なセットアップ手順については、docs/OLLAMA-CONFIGURATION.md を参照してください。これには以下が含まれます:
- すべての環境変数の構成
- プラットフォーム固有のインストール手順 (Windows、Linux、macOS)
- パフォーマンス最適化ガイド
- 一般的な問題のトラブルシューティング
MCP クライアント (Claude Desktop など) 用の MCP ツール
MCP サーバーは、ドキュメントイン