2.3. グラフ計算サービス仕様 (NetworkXMCP)
NetworkX Model Context Protocol (NetworkXMCP) は、グラフの計算処理に特化したステートフルなマイクロサービスです。
役割
APIサービスからCPU負荷の高い計算処理をオフロードする。- データベースに直接接続し、計算結果(レイアウト座標、中心性指標など)を永続的にキャッシュする。
- キャッシュが存在しない場合のみ
NetworkXライブラリを利用して計算を実行する。 - 様々な形式のGraphMLファイルをシステムで一貫して扱える標準形式に変換・正規化する。
APIエンドポイント一覧
APIサービスから内部的に呼び出される、主要なツールエンドポイントです。
| Method | Path | 説明 |
|---|---|---|
GET | /health | サービスのヘルスチェックを行う。 |
POST | /tools/calculate_centrality | 中心性指標(例: 次数中心性、媒介中心性、近接中心性、PageRankなど)を計算し、結果をキャッシュに保存する。可視化は変更しない。 |
POST | /tools/apply_metric_to_visual | キャッシュされた計算結果を、ノードのサイズや色などの可視化に反映させる。 |
POST | /tools/change_layout | グラフレイアウトを計算またはキャッシュから取得し、ノードの座標を更新する。GraphMLアップロード時の初期レイアウト計算にも使用される。 |
POST | /tools/highlight_nodes | 指定された指標と基準(例: 上位10%)に基づき、ノードのスタイル(サイズ、色など)をまとめて変更する、より抽象度の高いツール。 |
POST | /tools/convert_graphml | アップロードされたGraphMLファイルを解析・修正し、正規化されたGraphMLを返す。(ステートレス) |
設計思想: 計算と可視化の分離
本システムは、LLMの複数ツール呼び出し機能を活用し、「計算」と「可視化への反映」を明確に分離しています。これにより、ユーザーは「次数中心性を計算して」といった分析の指示と、「その結果をノードの大きさで表現して」といった可視化の指示を、自然な対話の中で組み合わせることができます。