GNN-based trust propagation for AI systems
Project description
rotalabs-graph
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 structureTrustNode- Node representing an entityTrustEdge- Directed trust relationshipTrustScore- Computed trust valueNodeType,EdgeType- Type enumerations
Propagation
PageRankPropagator- PageRank-based trustEigenTrustPropagator- EigenTrust algorithmWeightedPropagator- Weighted path propagationGNNPropagator- GNN-based (requires torch-geometric)
Analysis
AnomalyDetector- Detect trust anomaliesPathAnalyzer- Analyze trust pathsClusterAnalyzer- Community detectionMetricsCalculator- Graph-level metrics
Temporal
TemporalTrustGraph- Trust with decayTrustHistory- Track trust changesDecayFunction- Decay function types
Links
- Documentation: https://rotalabs.github.io/rotalabs-graph/
- PyPI: https://pypi.org/project/rotalabs-graph/
- GitHub: https://github.com/rotalabs/rotalabs-graph
- Website: https://rotalabs.ai
- Contact: research@rotalabs.ai
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
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-1.0.0.tar.gz
(85.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rotalabs_graph-1.0.0.tar.gz.
File metadata
- Download URL: rotalabs_graph-1.0.0.tar.gz
- Upload date:
- Size: 85.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8e5a8ff6cfb67078cb25416261025e55a3c4a81e06ff7bdcad118b94e40fd70
|
|
| MD5 |
33222773eb667c63cb50f8631eead20b
|
|
| BLAKE2b-256 |
22c5e00c87de709f7d54533189e99e54e714c08572e073e2f52247d1cd37d862
|
File details
Details for the file rotalabs_graph-1.0.0-py3-none-any.whl.
File metadata
- Download URL: rotalabs_graph-1.0.0-py3-none-any.whl
- Upload date:
- Size: 97.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd9bdbd72c3426d15a0ddb2520a9a8353364975d301bff2c3df61741eb8a6222
|
|
| MD5 |
ccfa8b7243f4426bc7f974633232a49a
|
|
| BLAKE2b-256 |
d23d20aff7bb8e54850bcfc64a4e661e7e473da540d8ef66a5f75762eb718a18
|