2.3. グラフ計算サービス仕様 (NetworkXMCP)
NetworkXMCPは、グラフの計算処理と、それらを適用した最終的なレンダリングデータの生成に特化したステートフルなマイクロサービスです。
役割
APIサービスからCPU負荷の高い計算処理をオフロードする。- データベースに直接接続し、計算結果(レイアウト座標、中心性指標など)を永続的にキャッシュする。
- キャッシュが存在しない場合のみ
NetworkXライブラリを利用して計算を実行する。 - 様々な形式のGraphMLファイルをシステムで一貫して扱える標準形式に変換・正規化する。
APIエンドポイント一覧
APIサービスから内部的に呼び出される、主要なツールエンドポイントです。
| Method | Path | 説明 |
|---|---|---|
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がグラフの「計算」と、その結果を反映した「最終レンダリングデータの生成」を一貫して行います。これにより、ユーザーは「次数中心性を計算して」といった分析の指示と、「その結果をノードの大きさで表現して」といった可視化の指示を、自然な対話の中で組み合わせることができます。