本ガイドは Neo4j 5.x と SambaNova GraphRAG コードベース v1.x で動作確認しています。異なるバージョンを使用している場合、一部の手順が異なる可能性があります。
概要
本ガイドでは、SambaNova の LLM を活用したエージェントと Neo4j を用いて GraphRAG アプリケーションを構築する手順を解説します。GraphRAG は、単純なテキスト断片ではなくグラフのリレーションシップを活用する、構造化された階層的な検索拡張生成 (RAG) のアプローチです。 サンプルアプリケーションは、Synthea データセットに含まれる患者の電子カルテを取得します。エージェントは Neo4j のグラフクエリ言語 (Cypher) を使用し、次の 2 つの方法でレコードにアクセスします。- 静的クエリ: 一般的な操作向けに事前定義された Cypher クエリ。
- 動的クエリ: 自然言語の入力から LLM が生成する Cypher クエリ (Text-to-Cypher)。
前提条件
- SambaCloud のアカウントと API キー、または SambaStack 環境
- Python 3.11 以上
- Python の依存関係管理用の UV パッケージマネージャー
- Neo4j データベースインスタンス (ローカルまたはクラウドホスト)
セットアップ
依存パッケージのインストール
1
UV パッケージマネージャーのインストール
2
integrations リポジトリのクローン
3
仮想環境の作成と依存パッケージのインストール
Synthea データセットの読み込み
1
Synthea データセットのダンプファイルのダウンロード
Synthea データセットのダンプファイル をローカルマシンにダウンロードします。
2
Neo4j Desktop へのダンプの読み込み
- データベースを停止します。
- 対象データベースのターミナルを開きます。
- パスをダウンロード先に置き換えて、以下のコマンドを実行します。
- データベースを起動します。
Neo4j Aura などのクラウドインスタンスについては、Neo4j のデータインポートに関するドキュメント をご参照ください。
環境変数の設定
1
サンプルの環境設定ファイルのコピー
2
.env を編集して以下の変数を設定
アプリケーションの実行
バックエンドの起動
SambaNova の LLM を使用して Neo4j データベースに接続する HTTP サーバーを起動します。フロントエンドの表示
ブラウザでアプリケーションのランディングページを開きます。接続の確認
- チャットボットのインターフェースで、「List all patients.」などのテストクエリを入力します。
- アプリケーションが Neo4j データベースから患者レコードを返すことを確認します。
主な機能
設定が完了すると、GraphRAG アプリケーションで以下のことができるようになります。- 自然言語クエリ: 患者データについて平易な英語で質問できます。
- グラフトラバーサル: 患者・症状・投薬・受診の間のリレーションシップを探索できます。
- Text-to-Cypher: 自然言語の入力から Cypher クエリを自動生成します。
- ヘルスケア分析: グラフベースのインサイトを用いて、Synthea データセット全体のパターンを分析できます。

