File size: 792 Bytes
b0c6eb9
7ea5311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Graph view component
# File: components/graph_view.py
import streamlit as st


def render_graph(graph_data):
    """
    Display a knowledge graph using Streamlit's Graphviz support.
    Args:
        graph_data (dict): {
            'nodes': [{'id': str, 'label': str}],
            'edges': [{'source': str, 'target': str}]
        }
    """
    st.header("πŸ”— Knowledge Graph")
    if not graph_data or not graph_data.get('nodes'):
        st.info("No graph data to display.")
        return

    # Build DOT string
    dot = "digraph G {\n"
    for node in graph_data['nodes']:
        dot += f"    {node['id']} [label=\"{node['label']}\"];\n"
    for edge in graph_data['edges']:
        dot += f"    {edge['source']} -> {edge['target']};\n"
    dot += "}"

    st.graphviz_chart(dot)