FalkorDB/GraphRAG-SDK

Build fast and accurate GenAI apps with GraphRAG SDK at scale 🌟

GraphRAG‑SDK – グラフベースの検索拡張生成フレームワーク

何であるか – ドキュメント(テキスト、PDF、Markdown、CSVなど)のコレクションを FalkorDB に格納された 知識グラフ に変換できる Python SDK。自然言語の質問に対して、そのグラフを検索・探索することで回答を生成します。このライブラリの中心的な考え方は、検索ステップがLLMよりも重要であるということです。グラフのノードとエッジに基づいて回答を根拠づけることで、幻覚を大幅に削減できます。

なぜ重要か – 伝統的な RAG パイプラインはフラットなベクトル類似度検索に依存しており、マルチホップの事実を逃すことが多く、トレーサビリティもありません。GraphRAG‑SDK は以下の機能を追加します:

  • 関係の探索 – エンティティを通じてリンクされた事実も、テキスト的に類似していなくても発見できます。
  • 出典エッジ(MENTIONED_IN – すべての回答は、その根拠となった正確なソースチャンクに遡ることができます。
  • 拒否サポート – グラフに十分な証拠がない場合、ライブラリは「証拠不足」と明示的に返すことができ、回答を捏造しません。
  • ベンチマーク最優位の精度 – README によると、GraphRAG‑Bench での全体精度は 71.48 % であり、標準的なベクトル RAG ベースラインを上回っています。

コアコンセプト

コンセプト 役割
グラフスキーマ オプションの GraphSchema でエンティティタイプ(例:PersonOrganization)や関係タイプ(例:WORKS_AT)を宣言できます。スキーマは抽出をガイドし、型付きで検証可能な事実を保証します。
インジェスト rag.ingest(text, document_id) は LLM でエンティティ/関係を抽出し、重複を排除、埋め込みを作成し、FalkorDB にノード/エッジをアップサートします。
ファイナライズ rag.finalize() はドキュメント間の重複排除と埋め込みの補完を実行します。これはグラフサイズに比例するため、一括変更後に一度だけ実行する必要があります。
検索+生成 rag.completion(question, return_context=True) はグラフベースの検索(ベクトル、全文、オプションのテキスト→Cypher)を行い、取得したコンテキストをLLMに渡して回答を生成します。
インクリメンタル更新 update()delete_document()apply_changes() を使って、ソースリポジトリ(例:CIパイプライン)とグラフを同期できます。完全再構築は不要です。

通常のワークフロー(5分デモ)

  1. インストールpip install graphrag-sdk[litellm](PDFサポートが必要な場合は [pdf] を追加)。FalkorDB コンテナを起動(docker run … falkordb/falkordb:latest)。
  2. GraphRAG インスタンスの作成ConnectionConfig(ホスト+グラフ名によるテナント分離)とLLM/埋め込みプロバイダを指定します(SDK は LiteLLM に薄いラッパーを備えているため、OpenAI互換モデルであれば何でも動作します)。
  3. ドキュメントのインジェスト – 各ソースに対して ingest() を呼び出します。LLM がエンティティを抽出し、埋め込み生成器がベクトルを作成し、SDK が Cypher のアップサートを書き込みます。
  4. ファイナライズ – 一括処理後に finalize() を一度実行して重複排除とインデックス化を行います。
  5. クエリawait rag.completion("Where does Alice work?")Answer オブジェクトを返し、answer.answer と、必要に応じて完全な検索トレース(ans.context)を含みます。

インストールとクイックスタートスニペット

pip install graphrag-sdk[litellm]
# FalkorDB(Docker)を起動し、OpenAIキーを設定
export OPENAI_API_KEY=sk-…
import asyncio
from graphrag_sdk import GraphRAG, ConnectionConfig, LiteLLM, LiteLLMEmbedder

async def main():
    async with GraphRAG(
        connection=ConnectionConfig(host="localhost", graph_name="demo"),
        llm=LiteLLM(model="openai/gpt-4o-mini"),
        embedder=LiteLLMEmbedder(model="openai/text-embedding-3-large", dimensions=256),
    ) as rag:
        await rag.ingest(text="Alice Johnson works at Acme Corp in London.", document_id="doc1")
        await rag.finalize()
        ans = await rag.completion("Where does Alice work?", return_context=True)
        print(ans.answer)
        print(ans.context)   # 出典エッジ、ソースチャンクなど

asyncio.run(main())

主な機能(READMEに記載)

  • ベンチマーク最優位の精度(執筆時点では GraphRAG‑Bench で1位)。
  • グラフベースの検索と出典エッジによる幻覚低減。
  • 高速でマルチテナント – 各グラフは名前で隔離。FalkorDB はサブミリ秒レベルの Cypher クエリを提供。
  • モジュール式パイプライン – カスタムインジェスト戦略、LLMプロバイダ、埋め込みバックエンドを自由に差し替え可能。
  • インクリメンタル更新 – クラッシュリカバリを備えた安全で同値な update();CI向けのバッチ処理。
  • 拡張可能なスキーマ – オントロジーを宣言または進化可能。SDK は新規タイプを入力ドキュメントから発見できます。
  • 観測性フック – 2026年Q2リリース予定。プロダクションレベルのメトリクスを追加予定。

誰が使うべきか

  • 企業:法務、医療、金融など、幻覚が許されない信頼性・監査可能な RAG 回答が必要な分野。
  • 開発者:チャットボット、Q&Aアシスタント、社内知識ベースを構築する人で、マルチホップの事実やエンティティ中心のクエリを必要とする人。
  • 研究者:グラフベース RAG と純粋なベクトル RAG の比較に興味がある人。SDK にはベンチマークスクリプトと再現性ドキュメントが同梱。

さらに学ぶには

  • 全ドキュメント: https://docs.falkordb.com/graphrag
  • セットアップガイド、アーキテクチャ概要、信頼性・根拠ドキュメント(すべて README からリンク)。
  • 例のギャラリー(graphrag_sdk/examples/…):クイックスタート、PDFインジェスト、カスタム戦略、オントロジー進化、および「拒否付き根拠のある回答」パターンをカバー。

コミュニティと貢献

  • Apache 2.0 ライセンスでオープンソース。
  • サポートと機能リクエスト用に、アクティブな Discord、GitHub Discussions、イシュー追跡システム。
  • 貢献ガイドとコードオブコンダクトが提供されています。

結論 – GraphRAG‑SDK は、FalkorDB のグラフエンジンとLLM駆動のエンティティ抽出を組み合わせた、プロダクション対応の Python ファーストフレームワークです。単なるベクトル検索パイプラインよりも、精度が高く、トレーサビリティがあり、制御性が高い RAG システムを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト