neo4j/neo4j-graphrag-python
Neo4j GraphRAG for Python
Neo4j GraphRAG Python パッケージ
概要 – Neo4j データベース上でグラフ検索拡張生成(GraphRAG)アプリケーションを構築できる公式 Python ライブラリです。生のテキストや PDF をナレッジグラフに変換するパイプライン、ベクトルインデックスの作成と投入のためのユーティリティ、ベクトル類似性とグラフトラバーサルを組み合わせた一連の検索器を提供します。このライブラリには多くの LLM プロバイダー(OpenAI、Anthropic、Ollama など)向けのアダプタが含まれ、Weaviate、Pinecone、Qdrant などの外部ベクトルストアとのオプションの統合も可能です。
主な機能
- ナレッジグラフ構築 –
Pipeline(フル機能)とSimpleKGPipeline(簡単開始)クラスは、LLM を使用してエンティティ/関係を抽出し、埋め込み、Neo4j に書き込みます。テキストおよび PDF ソースをサポートします。 - ベクトルインデックス – Neo4j ベクトルインデックスを作成し、埋め込みをアップサートするためのヘルパー関数。
- ハイブリッド検索 – 組み込みの
VectorRetrieverおよびその他の検索器は、近似最近傍検索とグラフトラバーサルを組み合わせて、より豊かなコンテキストを提供します。 - RAG 実行 –
GraphRAGクラスは検索器を LLM に結び付け、生成された回答を返すシンプルなsearch(query_text, ...)API を公開します。 - プラグ可能な LLM/埋め込みバックエンド – オプションの追加パッケージ(
openai、anthropic、google-genai、mistralaiなど)で、好みのモデルプロバイダーを選択できます。 - 実験的な KG 構築ツール –
experimental名前空間の下に追加のパイプラインとリゾルバ(例:spaCy ベースのセマンティックマッチング、ファジーマッチング)を提供します。
インストール
# PyPI から
pip install neo4j-graphrag
# または conda-forge 経由
conda install -c conda-forge neo4j-graphrag
必要な LLM 用のオプションの追加パッケージを追加します。例:pip install "neo4j-graphrag[openai]"。
典型的なワークフロー
- Neo4j を実行(APOC ライブラリをインストール)。
- ナレッジグラフを作成 –
SimpleKGPipeline(またはより設定可能なPipeline)を使用して、生のテキスト/PDF を入力し、ノード/関係スキーマを指定し、LLM にエンティティを抽出・埋め込みさせます。 - ベクトルインデックスを作成 –
Chunkラベル(または埋め込みを保存する任意のラベル)にcreate_vector_indexを使用してベクトルインデックスを作成します。 - インデックスを投入 –
upsert_vectorsで埋め込みを投入します。 - クエリ –
VectorRetriever、LLM ラッパー(例:OpenAILLM)、GraphRAGオブジェクトをインスタンス化し、自然言語の質問でsearch()を呼び出します。
ドキュメントと例
- 完全なドキュメント:https://neo4j.com/docs/neo4j-graphrag-python/
- ブログチュートリアルでは、KG 構築、ハイブリッド検索、Text2Cypher 検索器を説明しています。
- 豊富な
examples/フォルダには、各ステップの実行可能なスクリプトが含まれています。
開発と貢献
- 依存関係管理には
uvツールを使用します。開発環境をセットアップするにはuv sync --group devを実行します。 - コード品質は Ruff(lint)と MyPy(型チェック)で保証されています。
- 貢献には Neo4j の CLA への署名が必要です。
対象読者
- 構造化されたグラフコンテキストで LLM 応答を強化したいデータエンジニアや ML エンジニア。
- すでに Neo4j を使用しており、生成 AI へのシームレスな橋渡しが必要なチーム。
- ベクトル類似性とグラフセマンティクスを組み合わせたハイブリッド検索戦略を探求している研究者。
すべての詳細はリポジトリの README から直接取得しています。追加の機能は推測していません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト