メインコンテンツまでスキップ
バージョン: 2025-10-31

2.3. グラフ計算サービス仕様 (NetworkXMCP)

NetworkXMCPは、グラフの計算処理と、それらを適用した最終的なレンダリングデータの生成に特化したステートフルなマイクロサービスです。

役割​

  • APIサービスからCPU負荷の高い計算処理をオフロードする。
  • データベースに直接接続し、計算結果(レイアウト座標、中心性指標など)を永続的にキャッシュする。
  • キャッシュが存在しない場合のみNetworkXライブラリを利用して計算を実行する。
  • 様々な形式のGraphMLファイルをシステムで一貫して扱える標準形式に変換・正規化する。

APIエンドポイント一覧​

APIサービスから内部的に呼び出される、主要なツールエンドポイントです。

MethodPath説明
GET/healthサービスのヘルスチェックを行う。
POST/tools/calculate_centrality中心性指標を計算し、その結果を基にグラフの最終レンダリングデータを更新する。
POST/tools/apply_metric_to_visual指定された指標をノードのサイズや色などの視覚プロパティに適用し、グラフの最終レンダリングデータを更新する。
POST/tools/change_layoutグラフレイアウトを計算またはキャッシュから取得し、ノードの座標を更新した最終レンダリングデータを生成する。GraphMLアップロード時の初期レイアウト計算にも使用される。
POST/tools/highlight_nodes指定された指標と基準に基づき、ノードのスタイル(サイズ、色など)をまとめて変更し、グラフの最終レンダリングデータを更新する。
POST/tools/convert_graphmlアップロードされたGraphMLファイルを解析・修正し、正規化されたGraphMLを返す。(ステートレス)
正規化には、属性名の標準化、特定のデータ型への変換、欠損値の処理、およびシステムで一貫して扱えるGraphML形式への変換が含まれます。

設計思想: 計算と可視化の分離​

本システムは、LLMの複数ツール呼び出し機能を活用し、NetworkXMCPがグラフの「計算」と、その結果を反映した「最終レンダリングデータの生成」を一貫して行います。これにより、ユーザーは「次数中心性を計算して」といった分析の指示と、「その結果をノードの大きさで表現して」といった可視化の指示を、自然な対話の中で組み合わせることができます。