因果関係抽出 GraphRAG
文書から原因→結果の関係を自動抽出してNeo4jグラフに格納し、自然言語で因果チェーンを検索・可視化するシステム。
Duration
短期開発
Team
1名
01 // OVERVIEW
プロジェクト概要
テキスト文書を入力すると因果関係(原因→結果)を自動抽出し、Neo4jグラフデータベースに構造化して保存するシステム。
自然言語で「根本原因を遡る」「波及する結果を辿る」といった因果チェーン探索ができ、StreamlitとPyVisによるインタラクティブなグラフ可視化も備える。
02 // KEY FEATURES
主な機能
因果関係の自動抽出とグラフ構築
LangChain + OpenAI (gpt-4o-mini) で文書から因果関係ペア(原因→結果)を抽出し、Neo4j APOCへ格納。サイドバーにテキストやファイルを入力するだけでグラフが構築される。
自然言語による因果チェーン探索
「〇〇の原因は?」「〇〇の根本原因は?」などの自然言語クエリに対し、端的・詳細の2モードで回答。根本原因を遡る探索と波及結果を辿る探索の両方に対応する。
インタラクティブなグラフ可視化
StreamlitアプリとPyVis + NetworkXを組み合わせ、ノード・エッジをブラウザ上でインタラクティブに操作できる可視化画面を提供。管理者はノード・エッジの追加・削除・重み編集も可能。
03 // TECHNICAL DEEP-DIVE
技術的ハイライト
Solution
異なる表現の同一概念をグラフ上でマージする
文書中で言い回しが異なる同一概念が複数のノードとして分散してしまう問題に対し、類似ノードの統合・関連付け機能を設け、グラフの整合性を保てる設計とした。
Solution
外部API非依存のオンプレ構成にも転用可能な設計
クラウドAPIを前提としつつ、LLMプロバイダを切り替えやすい構成とすることで、オンプレ環境(Ollama + Llama系)への移行にも対応できるアーキテクチャを維持している。
04 // IMPACT & RESULTS
成果
Neo4j
グラフDBで因果関係を永続管理
2モード
端的・詳細の回答形式を切替
Docker完結
docker compose up で即起動