Skip to main content
Neo4j は、データをテーブルやドキュメントではなく、ノード・リレーションシップ・プロパティとして保存するグラフデータベースです。この構造により、ホワイトボードにアイデアを書き出すような直感的なデータ整理が可能になります。SambaNova を組み合わせることで、最先端の言語モデルを活用した高度なグラフ分析や自然言語クエリを Neo4j アプリケーションに取り入れることができます。
本ガイドは Neo4j 5.x と SambaNova GraphRAG コードベース v1.x で動作確認しています。異なるバージョンを使用している場合、一部の手順が異なる可能性があります。

概要

本ガイドでは、SambaNova の LLM を活用したエージェントと Neo4j を用いて GraphRAG アプリケーションを構築する手順を解説します。GraphRAG は、単純なテキスト断片ではなくグラフのリレーションシップを活用する、構造化された階層的な検索拡張生成 (RAG) のアプローチです。 サンプルアプリケーションは、Synthea データセットに含まれる患者の電子カルテを取得します。エージェントは Neo4j のグラフクエリ言語 (Cypher) を使用し、次の 2 つの方法でレコードにアクセスします。
  • 静的クエリ: 一般的な操作向けに事前定義された Cypher クエリ。
  • 動的クエリ: 自然言語の入力から LLM が生成する Cypher クエリ (Text-to-Cypher)。

前提条件

セットアップ

依存パッケージのインストール

1

UV パッケージマネージャーのインストール

2

integrations リポジトリのクローン

3

仮想環境の作成と依存パッケージのインストール

Synthea データセットの読み込み

1

Synthea データセットのダンプファイルのダウンロード

Synthea データセットのダンプファイル をローカルマシンにダウンロードします。
2

Neo4j Desktop へのダンプの読み込み

  1. データベースを停止します。
  2. 対象データベースのターミナルを開きます。
  3. パスをダウンロード先に置き換えて、以下のコマンドを実行します。
  4. データベースを起動します。
Neo4j Aura などのクラウドインスタンスについては、Neo4j のデータインポートに関するドキュメント をご参照ください。

環境変数の設定

1

サンプルの環境設定ファイルのコピー

2

.env を編集して以下の変数を設定

アプリケーションの実行

バックエンドの起動

SambaNova の LLM を使用して Neo4j データベースに接続する HTTP サーバーを起動します。
サーバーが起動すると、以下のような出力が表示されます。

フロントエンドの表示

ブラウザでアプリケーションのランディングページを開きます。

接続の確認

  1. チャットボットのインターフェースで、「List all patients.」などのテストクエリを入力します。
  2. アプリケーションが Neo4j データベースから患者レコードを返すことを確認します。

主な機能

設定が完了すると、GraphRAG アプリケーションで以下のことができるようになります。
  • 自然言語クエリ: 患者データについて平易な英語で質問できます。
  • グラフトラバーサル: 患者・症状・投薬・受診の間のリレーションシップを探索できます。
  • Text-to-Cypher: 自然言語の入力から Cypher クエリを自動生成します。
  • ヘルスケア分析: グラフベースのインサイトを用いて、Synthea データセット全体のパターンを分析できます。

デモ動画

以下の動画では、GraphRAG アプリケーションが SambaNova の LLM を活用して Neo4j データベースのヘルスケアデータにアクセスする様子をご覧いただけます。

トラブルシューティング

参考情報