Skip to main content

GNN-based trust propagation for AI systems

Project description

rotalabs-graph

PyPI version Python versions License

GNN-based trust propagation for AI systems.

Features

  • Trust Graph Data Structure: Model trust relationships between AI components
  • Multiple Propagation Algorithms: PageRank, EigenTrust, weighted propagation, and GNN-based
  • Anomaly Detection: Detect circular trust, trust islands, and suspicious patterns
  • Path Analysis: Find trust paths and bottlenecks between nodes
  • Cluster Analysis: Identify trust communities using Louvain, label propagation, etc.
  • Temporal Trust: Trust decay over time with history tracking
  • Graph Metrics: Comprehensive metrics for trust health analysis

Installation

pip install rotalabs-graph

With GNN support (requires PyTorch):

pip install rotalabs-graph[gnn]

With visualization:

pip install rotalabs-graph[viz]

Quick Start

Create a Trust Graph

from datetime import datetime
from rotalabs_graph import TrustGraph, TrustNode, TrustEdge, NodeType, EdgeType

# Create graph
graph = TrustGraph()

# Add nodes
now = datetime.now()
graph.add_node(TrustNode(
    id="user-1",
    name="User",
    node_type=NodeType.USER,
    base_trust=1.0,
    created_at=now,
    updated_at=now,
))

graph.add_node(TrustNode(
    id="model-gpt4",
    name="GPT-4",
    node_type=NodeType.MODEL,
    base_trust=0.95,
    created_at=now,
    updated_at=now,
))

# Add trust edge
graph.add_edge(TrustEdge(
    source_id="user-1",
    target_id="model-gpt4",
    edge_type=EdgeType.TRUSTS,
    weight=0.9,
    created_at=now,
))

print(f"Graph: {graph.num_nodes} nodes, {graph.num_edges} edges")

Detect Anomalies

from rotalabs_graph import AnomalyDetector

detector = AnomalyDetector()
anomalies = detector.detect_all(graph)

for anomaly in anomalies:
    print(f"{anomaly.anomaly_type}: {anomaly.description}")

Find Trust Paths

from rotalabs_graph import PathAnalyzer

analyzer = PathAnalyzer()
paths = analyzer.find_all_paths(graph, "user-1", "model-gpt4")

for path in paths:
    print(f"Path: {' -> '.join(path.node_ids)}, trust: {path.path_trust:.3f}")

Temporal Trust with Decay

from rotalabs_graph import TemporalTrustGraph, DecayFunction

# Create temporal graph with exponential decay
graph = TemporalTrustGraph(
    decay_function=DecayFunction.EXPONENTIAL,
    half_life_days=30.0,
    track_history=True,
)

# Add node
graph.add_node("agent-1", initial_trust=0.9)

# Get current trust (with decay applied)
current = graph.get_current_trust("agent-1")

Node Types

Type Description
MODEL AI/ML models
AGENT AI agents
USER Human users
DATA_SOURCE Data sources
TOOL Tools and APIs
SERVICE External services

Edge Types

Type Description
TRUSTS General trust relationship
DELEGATES Delegates authority to
VERIFIES Verifies outputs of
VALIDATES Validates results from
DEPENDS_ON Depends on for operation
CALLS Calls/invokes
OWNS Owns/controls

Propagation Algorithms

Algorithm Description
PageRankPropagator Trust as voting, with damping
EigenTrustPropagator Stationary distribution (Kamvar et al., 2003)
WeightedPropagator BFS with decay per hop
GNNPropagator Learned propagation with GCN/GAT/SAGE

Anomaly Types

Type Description
CIRCULAR_TRUST A trusts B trusts A
TRUST_ISLAND Disconnected component
SUSPICIOUS_CONCENTRATION Too many edges to one node
TRUST_CLIFF Sudden trust drop in path
ORPHAN_NODE Node with no connections

API Reference

Core Types

  • TrustGraph - Main graph data structure
  • TrustNode - Node representing an entity
  • TrustEdge - Directed trust relationship
  • TrustScore - Computed trust value
  • NodeType, EdgeType - Type enumerations

Propagation

  • PageRankPropagator - PageRank-based trust
  • EigenTrustPropagator - EigenTrust algorithm
  • WeightedPropagator - Weighted path propagation
  • GNNPropagator - GNN-based (requires torch-geometric)

Analysis

  • AnomalyDetector - Detect trust anomalies
  • PathAnalyzer - Analyze trust paths
  • ClusterAnalyzer - Community detection
  • MetricsCalculator - Graph-level metrics

Temporal

  • TemporalTrustGraph - Trust with decay
  • TrustHistory - Track trust changes
  • DecayFunction - Decay function types

Links

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rotalabs_graph-0.1.0.tar.gz (73.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rotalabs_graph-0.1.0-py3-none-any.whl (85.8 kB view details)

Uploaded Python 3

File details

Details for the file rotalabs_graph-0.1.0.tar.gz.

File metadata

  • Download URL: rotalabs_graph-0.1.0.tar.gz
  • Upload date:
  • Size: 73.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for rotalabs_graph-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7e07de3b636a2952d8e0c907858a587c1bbee3387091e7697fa156f6a7b854d8
MD5 9a27824b1781ac7fd915a8526efd8186
BLAKE2b-256 20d78fbee4e8e5e387a04a4705133750a9f9895609db9389bd15a4365e26cdaa

See more details on using hashes here.

File details

Details for the file rotalabs_graph-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rotalabs_graph-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 85.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for rotalabs_graph-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 900c6c8879fd0901f0225df3f03b5bef9001782397f960e42f05e4fac4609a70
MD5 c0ae529c8df6c83944ebc4ff01083325
BLAKE2b-256 4e3839b45f20caa70448e22e11267408c8bf14332c5a2d723a01a7b48324df3c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page