zenith-backend / app /services /intelligence /graph_visualization_service.py
teoat's picture
Upload folder using huggingface_hub
4ae946d verified
"""Graph visualization helpers and API-friendly utilities.
Provides snapshot export and basic node/edge extraction.
"""
from typing import Any
class GraphVisualizationService:
def __init__(self):
pass
def extract_nodes_edges(
self, case_data: dict[str, Any]
) -> dict[str, list[dict[str, Any]]]:
# Minimal extraction: treat entities as nodes and relationships as edges if present
nodes = []
edges = []
for ent in case_data.get("entities", []):
nodes.append(
{"id": ent.get("id") or ent.get("name"), "label": ent.get("name")}
)
for rel in case_data.get("relationships", []):
edges.append(
{
"source": rel.get("source"),
"target": rel.get("target"),
"type": rel.get("type"),
}
)
return {"nodes": nodes, "edges": edges}
def export_snapshot(self, graph: dict[str, Any]) -> dict[str, Any]:
# Simple JSON-serializable snapshot
return {"snapshot": graph, "exported_at": None}