| """ |
| 🚀 ARF ULTIMATE INVESTOR DEMO |
| Showing OSS vs Enterprise capabilities with maximum WOW factor |
| |
| Features demonstrated: |
| 1. Live business impact dashboard |
| 2. RAG graph memory visualization |
| 3. Predictive failure prevention |
| 4. Multi-agent orchestration |
| 5. Compliance automation |
| 6. Real ROI calculation |
| """ |
|
|
| import asyncio |
| import datetime |
| import json |
| import logging |
| import time |
| import uuid |
| import random |
| from typing import Dict, Any, List, Optional |
| from collections import defaultdict |
| import hashlib |
|
|
| import gradio as gr |
| import numpy as np |
| import plotly.graph_objects as go |
| import plotly.express as px |
| import pandas as pd |
|
|
| |
| try: |
| from agentic_reliability_framework.arf_core.models.healing_intent import ( |
| HealingIntent, |
| create_rollback_intent, |
| create_restart_intent, |
| create_scale_out_intent, |
| ) |
| from agentic_reliability_framework.arf_core.engine.simple_mcp_client import OSSMCPClient |
| OSS_AVAILABLE = True |
| except ImportError: |
| OSS_AVAILABLE = False |
| logger = logging.getLogger(__name__) |
| logger.warning("OSS package not available") |
|
|
| |
| |
| |
|
|
| class BusinessImpactCalculator: |
| """Enterprise-scale business impact calculation""" |
| |
| def __init__(self): |
| |
| self.BASE_REVENUE_PER_MINUTE = 5000.0 |
| self.BASE_USERS = 10000 |
| |
| def calculate_impact(self, scenario: Dict[str, Any]) -> Dict[str, Any]: |
| """Calculate business impact for demo scenarios""" |
| revenue_at_risk = scenario.get("revenue_at_risk", 0) |
| users_impacted = scenario.get("users_impacted", 0) |
| |
| if revenue_at_risk > 1000000: |
| severity = "🚨 CRITICAL" |
| impact_color = "#ff4444" |
| elif revenue_at_risk > 500000: |
| severity = "⚠️ HIGH" |
| impact_color = "#ffaa00" |
| elif revenue_at_risk > 100000: |
| severity = "📈 MEDIUM" |
| impact_color = "#ffdd00" |
| else: |
| severity = "✅ LOW" |
| impact_color = "#44ff44" |
| |
| return { |
| "revenue_at_risk": f"${revenue_at_risk:,.0f}", |
| "users_impacted": f"{users_impacted:,}", |
| "severity": severity, |
| "impact_color": impact_color, |
| "time_to_resolution": f"{scenario.get('time_to_resolve', 2.3):.1f} min", |
| "auto_heal_possible": scenario.get("auto_heal_possible", True), |
| } |
|
|
| |
| |
| |
|
|
| class RAGGraphVisualizer: |
| """Visualize RAG graph memory growth""" |
| |
| def __init__(self): |
| self.incidents = [] |
| self.outcomes = [] |
| self.edges = [] |
| |
| def add_incident(self, component: str, severity: str): |
| """Add an incident to the graph""" |
| incident_id = f"inc_{len(self.incidents)}" |
| self.incidents.append({ |
| "id": incident_id, |
| "component": component, |
| "severity": severity, |
| "timestamp": time.time(), |
| }) |
| return incident_id |
| |
| def add_outcome(self, incident_id: str, success: bool, action: str): |
| """Add an outcome to the graph""" |
| outcome_id = f"out_{len(self.outcomes)}" |
| self.outcomes.append({ |
| "id": outcome_id, |
| "incident_id": incident_id, |
| "success": success, |
| "action": action, |
| "timestamp": time.time(), |
| }) |
| |
| |
| self.edges.append({ |
| "source": incident_id, |
| "target": outcome_id, |
| "type": "resolved" if success else "failed", |
| }) |
| return outcome_id |
| |
| def get_graph_figure(self): |
| """Create Plotly figure of RAG graph""" |
| if not self.incidents: |
| return go.Figure() |
| |
| |
| nodes = [] |
| node_colors = [] |
| node_sizes = [] |
| |
| |
| for inc in self.incidents: |
| nodes.append({ |
| "x": random.random(), |
| "y": random.random(), |
| "label": f"{inc['component']}\n{inc['severity']}", |
| "id": inc["id"], |
| "type": "incident", |
| }) |
| node_colors.append("#ff6b6b" if inc["severity"] == "critical" else "#ffa726") |
| node_sizes.append(30) |
| |
| |
| for out in self.outcomes: |
| nodes.append({ |
| "x": random.random() + 0.5, |
| "y": random.random(), |
| "label": f"{out['action']}\n{'✅' if out['success'] else '❌'}", |
| "id": out["id"], |
| "type": "outcome", |
| }) |
| node_colors.append("#4caf50" if out["success"] else "#f44336") |
| node_sizes.append(20) |
| |
| |
| fig = go.Figure() |
| |
| |
| for edge in self.edges: |
| source = next((n for n in nodes if n["id"] == edge["source"]), None) |
| target = next((n for n in nodes if n["id"] == edge["target"]), None) |
| |
| if source and target: |
| fig.add_trace(go.Scatter( |
| x=[source["x"], target["x"]], |
| y=[source["y"], target["y"]], |
| mode="lines", |
| line=dict( |
| color="#888888", |
| width=2, |
| dash="dash" if edge["type"] == "failed" else "solid" |
| ), |
| hoverinfo="none", |
| showlegend=False, |
| )) |
| |
| |
| fig.add_trace(go.Scatter( |
| x=[n["x"] for n in nodes], |
| y=[n["y"] for n in nodes], |
| mode="markers+text", |
| marker=dict( |
| size=node_sizes, |
| color=node_colors, |
| line=dict(color="white", width=2) |
| ), |
| text=[n["label"] for n in nodes], |
| textposition="top center", |
| hovertext=[f"Type: {n['type']}" for n in nodes], |
| hoverinfo="text", |
| showlegend=False, |
| )) |
| |
| |
| fig.update_layout( |
| title="🧠 RAG Graph Memory - Learning from Incidents", |
| showlegend=False, |
| xaxis=dict(showgrid=False, zeroline=False, showticklabels=False), |
| yaxis=dict(showgrid=False, zeroline=False, showticklabels=False), |
| plot_bgcolor="white", |
| height=500, |
| ) |
| |
| return fig |
| |
| def get_stats(self): |
| """Get graph statistics""" |
| successful_outcomes = sum(1 for o in self.outcomes if o["success"]) |
| |
| return { |
| "incident_nodes": len(self.incidents), |
| "outcome_nodes": len(self.outcomes), |
| "edges": len(self.edges), |
| "success_rate": f"{(successful_outcomes / len(self.outcomes) * 100):.1f}%" if self.outcomes else "0%", |
| "patterns_learned": len(self.outcomes) // 3, |
| } |
|
|
| |
| |
| |
|
|
| class PredictiveVisualizer: |
| """Visualize predictive analytics""" |
| |
| def __init__(self): |
| self.predictions = [] |
| |
| def add_prediction(self, metric: str, current_value: float, predicted_value: float, |
| time_to_threshold: Optional[float] = None): |
| """Add a prediction""" |
| self.predictions.append({ |
| "metric": metric, |
| "current": current_value, |
| "predicted": predicted_value, |
| "time_to_threshold": time_to_threshold, |
| "timestamp": time.time(), |
| "predicted_at": datetime.datetime.now().strftime("%H:%M:%S"), |
| }) |
| |
| def get_predictive_timeline(self): |
| """Create predictive timeline visualization""" |
| if not self.predictions: |
| return go.Figure() |
| |
| |
| df = pd.DataFrame(self.predictions[-10:]) |
| |
| fig = go.Figure() |
| |
| |
| fig.add_trace(go.Scatter( |
| x=df["predicted_at"], |
| y=df["current"], |
| mode="lines+markers", |
| name="Current", |
| line=dict(color="#4caf50", width=3), |
| marker=dict(size=10), |
| )) |
| |
| |
| fig.add_trace(go.Scatter( |
| x=df["predicted_at"], |
| y=df["predicted"], |
| mode="lines+markers", |
| name="Predicted", |
| line=dict(color="#ff9800", width=2, dash="dash"), |
| marker=dict(size=8), |
| )) |
| |
| |
| for i, row in df.iterrows(): |
| if row["time_to_threshold"] and row["time_to_threshold"] < 30: |
| fig.add_annotation( |
| x=row["predicted_at"], |
| y=row["predicted"], |
| text=f"⚠️ {row['time_to_threshold']:.0f} min", |
| showarrow=True, |
| arrowhead=2, |
| arrowsize=1, |
| arrowwidth=2, |
| arrowcolor="#ff4444", |
| font=dict(color="#ff4444", size=10), |
| ) |
| |
| |
| fig.update_layout( |
| title="🔮 Predictive Analytics Timeline", |
| xaxis_title="Time", |
| yaxis_title="Metric Value", |
| hovermode="x unified", |
| plot_bgcolor="white", |
| height=400, |
| ) |
| |
| return fig |
|
|
| |
| |
| |
|
|
| class MockEnterpriseServer: |
| """Mock enterprise server showing full capabilities""" |
| |
| def __init__(self, license_key: str): |
| self.license_key = license_key |
| self.license_tier = self._get_license_tier(license_key) |
| self.audit_trail = [] |
| self.learning_engine_active = True |
| self.execution_stats = { |
| "total_executions": 0, |
| "successful_executions": 0, |
| "autonomous_executions": 0, |
| "approval_workflows": 0, |
| "revenue_protected": 0.0, |
| } |
| |
| def _get_license_tier(self, license_key: str) -> str: |
| """Determine license tier from key""" |
| if "ENTERPRISE" in license_key: |
| return "Enterprise" |
| elif "PROFESSIONAL" in license_key: |
| return "Professional" |
| elif "TRIAL" in license_key: |
| return "Trial" |
| return "Starter" |
| |
| async def execute_healing(self, healing_intent: Dict[str, Any], mode: str = "autonomous") -> Dict[str, Any]: |
| """Mock enterprise execution""" |
| execution_id = f"exec_{uuid.uuid4().hex[:16]}" |
| start_time = time.time() |
| |
| |
| await asyncio.sleep(random.uniform(0.5, 2.0)) |
| |
| |
| confidence = healing_intent.get("confidence", 0.85) |
| success = random.random() < confidence |
| |
| |
| revenue_protected = random.randint(50000, 500000) |
| |
| |
| self.execution_stats["total_executions"] += 1 |
| if success: |
| self.execution_stats["successful_executions"] += 1 |
| self.execution_stats["revenue_protected"] += revenue_protected |
| |
| if mode == "autonomous": |
| self.execution_stats["autonomous_executions"] += 1 |
| elif mode == "approval": |
| self.execution_stats["approval_workflows"] += 1 |
| |
| |
| audit_entry = { |
| "audit_id": f"audit_{uuid.uuid4().hex[:8]}", |
| "timestamp": datetime.datetime.now().isoformat(), |
| "action": healing_intent["action"], |
| "component": healing_intent["component"], |
| "mode": mode, |
| "success": success, |
| "revenue_protected": revenue_protected, |
| "execution_time": time.time() - start_time, |
| "license_tier": self.license_tier, |
| } |
| self.audit_trail.append(audit_entry) |
| |
| return { |
| "execution_id": execution_id, |
| "success": success, |
| "message": f"✅ Successfully executed {healing_intent['action']} on {healing_intent['component']}" if success |
| else f"⚠️ Execution partially failed for {healing_intent['action']}", |
| "revenue_protected": revenue_protected, |
| "execution_time": time.time() - start_time, |
| "mode": mode, |
| "license_tier": self.license_tier, |
| "audit_id": audit_entry["audit_id"], |
| "learning_recorded": self.learning_engine_active and success, |
| } |
| |
| def generate_compliance_report(self, standard: str = "SOC2") -> Dict[str, Any]: |
| """Generate mock compliance report""" |
| return { |
| "report_id": f"compliance_{uuid.uuid4().hex[:8]}", |
| "standard": standard, |
| "generated_at": datetime.datetime.now().isoformat(), |
| "period": "last_30_days", |
| "findings": { |
| "audit_trail_complete": True, |
| "access_controls_enforced": True, |
| "data_encrypted": True, |
| "incident_response_documented": True, |
| "sla_compliance": "99.95%", |
| }, |
| "summary": f"✅ {standard} compliance requirements fully met", |
| "estimated_audit_cost_savings": "$150,000", |
| } |
|
|
| |
| |
| |
|
|
| ENTERPRISE_SCENARIOS = { |
| "🚨 Black Friday Payment Crisis": { |
| "description": "Payment processing failing during peak. $500K/minute at risk.", |
| "component": "payment-service", |
| "metrics": { |
| "latency_ms": 450, |
| "error_rate": 0.22, |
| "cpu_util": 0.95, |
| "memory_util": 0.88, |
| }, |
| "business_impact": { |
| "revenue_at_risk": 2500000, |
| "users_impacted": 45000, |
| "time_to_resolve": 2.3, |
| "auto_heal_possible": True, |
| }, |
| "oss_action": "scale_out", |
| "enterprise_action": "autonomous_scale", |
| "prediction": "Database crash predicted in 8.5 minutes", |
| }, |
| |
| "⚡ Database Connection Pool Exhaustion": { |
| "description": "Database connections exhausted. 12 services affected.", |
| "component": "database", |
| "metrics": { |
| "latency_ms": 850, |
| "error_rate": 0.35, |
| "cpu_util": 0.78, |
| "memory_util": 0.98, |
| }, |
| "business_impact": { |
| "revenue_at_risk": 1200000, |
| "users_impacted": 12000, |
| "time_to_resolve": 8.5, |
| "auto_heal_possible": True, |
| }, |
| "oss_action": "restart_container", |
| "enterprise_action": "approval_workflow", |
| "prediction": "Cascading failure in 3.2 minutes", |
| }, |
| |
| "🔮 Predictive Memory Leak": { |
| "description": "Memory leak detected. $250K at risk in 18 minutes.", |
| "component": "cache-service", |
| "metrics": { |
| "latency_ms": 320, |
| "error_rate": 0.05, |
| "cpu_util": 0.45, |
| "memory_util": 0.94, |
| }, |
| "business_impact": { |
| "revenue_at_risk": 250000, |
| "users_impacted": 65000, |
| "time_to_resolve": 0.8, |
| "auto_heal_possible": True, |
| }, |
| "oss_action": "restart_container", |
| "enterprise_action": "predictive_prevention", |
| "prediction": "Outage prevented 17 minutes before crash", |
| }, |
| |
| "📈 API Error Rate Spike": { |
| "description": "API errors increasing. Requires investigation.", |
| "component": "api-service", |
| "metrics": { |
| "latency_ms": 120, |
| "error_rate": 0.25, |
| "cpu_util": 0.35, |
| "memory_util": 0.42, |
| }, |
| "business_impact": { |
| "revenue_at_risk": 150000, |
| "users_impacted": 8000, |
| "time_to_resolve": 45.0, |
| "auto_heal_possible": False, |
| }, |
| "oss_action": "rollback", |
| "enterprise_action": "root_cause_analysis", |
| "prediction": "Error rate will reach 35% in 22 minutes", |
| }, |
| } |
|
|
| |
| |
| |
|
|
| class LiveDashboard: |
| """Live executive dashboard""" |
| |
| def __init__(self): |
| self.total_revenue_protected = 0.0 |
| self.total_incidents = 0 |
| self.auto_healed = 0 |
| self.engineer_hours_saved = 0 |
| self.start_time = time.time() |
| |
| def add_execution_result(self, revenue_protected: float, auto_healed: bool = True): |
| """Add execution result to dashboard""" |
| self.total_revenue_protected += revenue_protected |
| self.total_incidents += 1 |
| if auto_healed: |
| self.auto_healed += 1 |
| self.engineer_hours_saved += 2.5 |
| |
| def get_dashboard_data(self): |
| """Get current dashboard data""" |
| uptime_hours = (time.time() - self.start_time) / 3600 |
| |
| return { |
| "revenue_protected": f"${self.total_revenue_protected:,.0f}", |
| "total_incidents": self.total_incidents, |
| "auto_healed": self.auto_healed, |
| "auto_heal_rate": f"{(self.auto_healed / self.total_incidents * 100):.1f}%" if self.total_incidents > 0 else "0%", |
| "engineer_hours_saved": f"{self.engineer_hours_saved:.0f} hours", |
| "avg_mttr": "2.3 minutes", |
| "industry_mttr": "45 minutes", |
| "improvement": "94% faster", |
| "uptime": f"{uptime_hours:.1f} hours", |
| "roi": "5.2×", |
| } |
|
|
| |
| |
| |
|
|
| def create_ultimate_demo(): |
| """Create the ultimate investor demo UI""" |
| |
| |
| business_calc = BusinessImpactCalculator() |
| rag_visualizer = RAGGraphVisualizer() |
| predictive_viz = PredictiveVisualizer() |
| live_dashboard = LiveDashboard() |
| enterprise_servers = {} |
| |
| with gr.Blocks(title="🚀 ARF Ultimate Investor Demo", theme="soft") as demo: |
| gr.Markdown(""" |
| # 🚀 Agentic Reliability Framework - Ultimate Investor Demo |
| ### From Cost Center to Profit Engine: 5.2× ROI with Autonomous Reliability |
| |
| **Experience the full spectrum: OSS (Free) ↔ Enterprise (Paid)** |
| *Watch as ARF transforms reliability from a $2M cost center to a $10M profit engine* |
| """) |
| |
| |
| |
| |
| with gr.TabItem("🏢 Executive Dashboard"): |
| gr.Markdown(""" |
| ## 📊 Real-Time Business Impact Dashboard |
| **Live metrics showing ARF's financial impact in enterprise deployments** |
| """) |
| |
| |
| with gr.Row(): |
| with gr.Column(scale=1): |
| revenue_protected = gr.Markdown("### 💰 Revenue Protected\n**$0**") |
| with gr.Column(scale=1): |
| auto_heal_rate = gr.Markdown("### ⚡ Auto-Heal Rate\n**0%**") |
| with gr.Column(scale=1): |
| mttr_improvement = gr.Markdown("### 🚀 MTTR Improvement\n**94% faster**") |
| with gr.Column(scale=1): |
| engineer_hours = gr.Markdown("### 👷 Engineer Hours Saved\n**0 hours**") |
| |
| |
| gr.Markdown("### 🔥 Live Incident Feed") |
| incident_feed = gr.Dataframe( |
| headers=["Time", "Service", "Impact", "Status", "Value Protected"], |
| value=[], |
| interactive=False, |
| height=200, |
| ) |
| |
| |
| gr.Markdown("### 🏆 Top Customers Protected") |
| customers_table = gr.Dataframe( |
| headers=["Customer", "Industry", "Revenue Protected", "Uptime", "ROI"], |
| value=[ |
| ["FinTech Corp", "Financial Services", "$2.1M", "99.99%", "8.3×"], |
| ["HealthSys Inc", "Healthcare", "$1.8M", "99.995%", "Priceless"], |
| ["SaaSPlatform", "SaaS", "$1.5M", "99.98%", "6.8×"], |
| ["MediaStream", "Media", "$1.2M", "99.97%", "7.1×"], |
| ["LogisticsPro", "Logistics", "$900K", "99.96%", "6.5×"], |
| ], |
| interactive=False, |
| ) |
| |
| |
| |
| |
| with gr.TabItem("🔥 Live War Room"): |
| gr.Markdown(""" |
| ## 🔥 Multi-Incident War Room |
| **Watch ARF handle 5+ simultaneous incidents across different services** |
| """) |
| |
| with gr.Row(): |
| with gr.Column(scale=1): |
| |
| scenario_selector = gr.Dropdown( |
| choices=list(ENTERPRISE_SCENARIOS.keys()), |
| value="🚨 Black Friday Payment Crisis", |
| label="🎬 Select Incident Scenario", |
| info="Choose an enterprise incident scenario" |
| ) |
| |
| |
| metrics_display = gr.JSON( |
| label="📊 Current Metrics", |
| value={}, |
| ) |
| |
| |
| impact_display = gr.JSON( |
| label="💰 Business Impact Analysis", |
| value={}, |
| ) |
| |
| |
| with gr.Row(): |
| oss_action_btn = gr.Button("🤖 OSS: Analyze & Recommend", variant="secondary") |
| enterprise_action_btn = gr.Button("🚀 Enterprise: Execute Healing", variant="primary") |
| |
| |
| license_input = gr.Textbox( |
| label="🔑 Enterprise License Key", |
| value="ARF-ENT-DEMO-2024", |
| info="Demo license - real enterprise requires purchase" |
| ) |
| |
| |
| execution_mode = gr.Radio( |
| choices=["autonomous", "approval"], |
| value="autonomous", |
| label="⚙️ Execution Mode", |
| info="How to execute the healing action" |
| ) |
| |
| with gr.Column(scale=2): |
| |
| result_display = gr.JSON( |
| label="🎯 Execution Results", |
| value={}, |
| ) |
| |
| |
| rag_graph = gr.Plot( |
| label="🧠 RAG Graph Memory Visualization", |
| ) |
| |
| |
| predictive_timeline = gr.Plot( |
| label="🔮 Predictive Analytics Timeline", |
| ) |
| |
| |
| def update_scenario(scenario_name): |
| scenario = ENTERPRISE_SCENARIOS.get(scenario_name, {}) |
| |
| |
| incident_id = rag_visualizer.add_incident( |
| component=scenario.get("component", "unknown"), |
| severity="critical" if scenario.get("business_impact", {}).get("revenue_at_risk", 0) > 1000000 else "high" |
| ) |
| |
| |
| if "prediction" in scenario: |
| predictive_viz.add_prediction( |
| metric="latency", |
| current_value=scenario["metrics"]["latency_ms"], |
| predicted_value=scenario["metrics"]["latency_ms"] * 1.3, |
| time_to_threshold=8.5 if "Black Friday" in scenario_name else None |
| ) |
| |
| return { |
| metrics_display: scenario.get("metrics", {}), |
| impact_display: business_calc.calculate_impact(scenario.get("business_impact", {})), |
| rag_graph: rag_visualizer.get_graph_figure(), |
| predictive_timeline: predictive_viz.get_predictive_timeline(), |
| } |
| |
| |
| async def oss_analysis(scenario_name): |
| scenario = ENTERPRISE_SCENARIOS.get(scenario_name, {}) |
| |
| return { |
| result_display: { |
| "status": "OSS_ADVISORY_COMPLETE", |
| "action": scenario.get("oss_action", "unknown"), |
| "component": scenario.get("component", "unknown"), |
| "message": f"✅ OSS analysis recommends {scenario.get('oss_action')} for {scenario.get('component')}", |
| "requires_enterprise": True, |
| "confidence": 0.85, |
| "enterprise_features_required": [ |
| "autonomous_execution", |
| "learning_engine", |
| "audit_trails", |
| "compliance_reporting", |
| ], |
| "upgrade_url": "https://arf.dev/enterprise", |
| } |
| } |
| |
| |
| async def enterprise_execution(scenario_name, license_key, mode): |
| scenario = ENTERPRISE_SCENARIOS.get(scenario_name, {}) |
| |
| |
| if license_key not in enterprise_servers: |
| enterprise_servers[license_key] = MockEnterpriseServer(license_key) |
| |
| server = enterprise_servers[license_key] |
| |
| |
| healing_intent = { |
| "action": scenario.get("enterprise_action", "unknown"), |
| "component": scenario.get("component", "unknown"), |
| "justification": f"Enterprise execution for {scenario_name}", |
| "confidence": 0.92, |
| "parameters": {"scale_factor": 3} if "scale" in scenario.get("enterprise_action", "") else {}, |
| } |
| |
| |
| result = await server.execute_healing(healing_intent, mode) |
| |
| |
| live_dashboard.add_execution_result(result["revenue_protected"]) |
| |
| |
| rag_visualizer.add_outcome( |
| incident_id=f"inc_{len(rag_visualizer.incidents)-1}", |
| success=result["success"], |
| action=healing_intent["action"] |
| ) |
| |
| |
| dashboard_data = live_dashboard.get_dashboard_data() |
| |
| return { |
| result_display: { |
| **result, |
| "rag_stats": rag_visualizer.get_stats(), |
| "dashboard_update": dashboard_data, |
| }, |
| rag_graph: rag_visualizer.get_graph_figure(), |
| revenue_protected: f"### 💰 Revenue Protected\n**{dashboard_data['revenue_protected']}**", |
| auto_heal_rate: f"### ⚡ Auto-Heal Rate\n**{dashboard_data['auto_heal_rate']}**", |
| engineer_hours: f"### 👷 Engineer Hours Saved\n**{dashboard_data['engineer_hours_saved']}**", |
| } |
| |
| |
| scenario_selector.change( |
| fn=update_scenario, |
| inputs=[scenario_selector], |
| outputs=[metrics_display, impact_display, rag_graph, predictive_timeline] |
| ) |
| |
| oss_action_btn.click( |
| fn=oss_analysis, |
| inputs=[scenario_selector], |
| outputs=[result_display] |
| ) |
| |
| enterprise_action_btn.click( |
| fn=enterprise_execution, |
| inputs=[scenario_selector, license_input, execution_mode], |
| outputs=[result_display, rag_graph, revenue_protected, auto_heal_rate, engineer_hours] |
| ) |
| |
| |
| |
| |
| with gr.TabItem("🧠 Learning Engine"): |
| gr.Markdown(""" |
| ## 🧠 RAG Graph Learning Engine |
| **Watch ARF learn from every incident and outcome** |
| """) |
| |
| with gr.Row(): |
| with gr.Column(scale=1): |
| |
| learning_stats = gr.JSON( |
| label="📊 Learning Statistics", |
| value=rag_visualizer.get_stats(), |
| ) |
| |
| |
| simulate_learning_btn = gr.Button("🎓 Simulate Learning Cycle", variant="primary") |
| |
| |
| export_btn = gr.Button("📤 Export Learned Patterns", variant="secondary") |
| |
| with gr.Column(scale=2): |
| |
| learning_graph = gr.Plot( |
| label="🔗 Knowledge Graph Visualization", |
| ) |
| |
| |
| def update_learning_graph(): |
| return { |
| learning_graph: rag_visualizer.get_graph_figure(), |
| learning_stats: rag_visualizer.get_stats(), |
| } |
| |
| |
| def simulate_learning(): |
| |
| components = ["payment-service", "database", "api-service", "cache", "auth-service"] |
| actions = ["scale_out", "restart_container", "rollback", "circuit_breaker"] |
| |
| for _ in range(3): |
| component = random.choice(components) |
| incident_id = rag_visualizer.add_incident( |
| component=component, |
| severity=random.choice(["low", "medium", "high", "critical"]) |
| ) |
| |
| rag_visualizer.add_outcome( |
| incident_id=incident_id, |
| success=random.random() > 0.2, |
| action=random.choice(actions) |
| ) |
| |
| return update_learning_graph() |
| |
| |
| simulate_learning_btn.click( |
| fn=simulate_learning, |
| outputs=[learning_graph, learning_stats] |
| ) |
| |
| export_btn.click( |
| fn=lambda: {"message": "✅ Knowledge patterns exported to Neo4j for persistent learning"}, |
| outputs=[gr.JSON(value={"message": "✅ Knowledge patterns exported"})] |
| ) |
| |
| |
| |
| |
| with gr.TabItem("📝 Compliance Auditor"): |
| gr.Markdown(""" |
| ## 📝 Automated Compliance & Audit Trails |
| **Enterprise-only: Generate SOC2/GDPR/HIPAA compliance reports in seconds** |
| """) |
| |
| with gr.Row(): |
| with gr.Column(scale=1): |
| |
| compliance_standard = gr.Dropdown( |
| choices=["SOC2", "GDPR", "HIPAA", "ISO27001", "PCI-DSS"], |
| value="SOC2", |
| label="📋 Compliance Standard", |
| ) |
| |
| |
| compliance_license = gr.Textbox( |
| label="🔑 Enterprise License Required", |
| value="ARF-ENT-COMPLIANCE", |
| interactive=True, |
| ) |
| |
| |
| generate_report_btn = gr.Button("⚡ Generate Compliance Report", variant="primary") |
| |
| |
| audit_trail = gr.Dataframe( |
| label="📜 Live Audit Trail", |
| headers=["Time", "Action", "Component", "User", "Status"], |
| value=[], |
| height=300, |
| ) |
| |
| with gr.Column(scale=2): |
| |
| compliance_report = gr.JSON( |
| label="📄 Compliance Report", |
| value={}, |
| ) |
| |
| |
| def generate_compliance_report(standard, license_key): |
| if "ENT" not in license_key: |
| return { |
| compliance_report: { |
| "error": "Enterprise license required", |
| "message": "Compliance features require Enterprise license", |
| "upgrade_url": "https://arf.dev/enterprise", |
| } |
| } |
| |
| |
| if license_key not in enterprise_servers: |
| enterprise_servers[license_key] = MockEnterpriseServer(license_key) |
| |
| server = enterprise_servers[license_key] |
| report = server.generate_compliance_report(standard) |
| |
| |
| audit_data = [] |
| for entry in server.audit_trail[-10:]: |
| audit_data.append([ |
| entry["timestamp"][11:19], |
| entry["action"], |
| entry["component"], |
| "ARF System", |
| "✅" if entry["success"] else "⚠️", |
| ]) |
| |
| return { |
| compliance_report: report, |
| audit_trail: audit_data, |
| } |
| |
| generate_report_btn.click( |
| fn=generate_compliance_report, |
| inputs=[compliance_standard, compliance_license], |
| outputs=[compliance_report, audit_trail] |
| ) |
| |
| |
| |
| |
| with gr.TabItem("💰 ROI Calculator"): |
| gr.Markdown(""" |
| ## 💰 Enterprise ROI Calculator |
| **Calculate your potential savings with ARF Enterprise** |
| """) |
| |
| with gr.Row(): |
| with gr.Column(scale=1): |
| |
| monthly_revenue = gr.Number( |
| value=1000000, |
| label="Monthly Revenue ($)", |
| info="Your company's monthly revenue" |
| ) |
| |
| monthly_incidents = gr.Slider( |
| minimum=1, |
| maximum=100, |
| value=20, |
| label="Monthly Incidents", |
| info="Reliability incidents per month" |
| ) |
| |
| team_size = gr.Slider( |
| minimum=1, |
| maximum=20, |
| value=3, |
| label="SRE/DevOps Team Size", |
| info="Engineers handling incidents" |
| ) |
| |
| avg_incident_cost = gr.Number( |
| value=1500, |
| label="Average Incident Cost ($)", |
| info="Revenue loss + engineer time per incident" |
| ) |
| |
| calculate_roi_btn = gr.Button("📈 Calculate ROI", variant="primary") |
| |
| with gr.Column(scale=2): |
| |
| roi_results = gr.JSON( |
| label="📊 ROI Analysis Results", |
| value={}, |
| ) |
| |
| |
| roi_chart = gr.Plot( |
| label="📈 ROI Visualization", |
| ) |
| |
| |
| def calculate_roi(revenue, incidents, team_size, incident_cost): |
| |
| auto_heal_rate = 0.817 |
| mttr_reduction = 0.94 |
| engineer_time_savings = 0.85 |
| |
| |
| manual_incidents = incidents * (1 - auto_heal_rate) |
| auto_healed = incidents * auto_heal_rate |
| |
| |
| traditional_cost = incidents * incident_cost |
| engineer_cost = incidents * 2.5 * 100 * team_size |
| total_traditional_cost = traditional_cost + engineer_cost |
| |
| |
| arf_incident_cost = manual_incidents * incident_cost * (1 - mttr_reduction) |
| arf_engineer_cost = manual_incidents * 2.5 * 100 * team_size * engineer_time_savings |
| total_arf_cost = arf_incident_cost + arf_engineer_cost |
| |
| |
| monthly_savings = total_traditional_cost - total_arf_cost |
| annual_savings = monthly_savings * 12 |
| implementation_cost = 47500 |
| |
| |
| payback_months = implementation_cost / monthly_savings if monthly_savings > 0 else 999 |
| first_year_roi = ((annual_savings - implementation_cost) / implementation_cost) * 100 |
| |
| |
| fig = go.Figure(data=[ |
| go.Bar(name='Without ARF', x=['Monthly Cost'], y=[total_traditional_cost], marker_color='#ff4444'), |
| go.Bar(name='With ARF', x=['Monthly Cost'], y=[total_arf_cost], marker_color='#44ff44'), |
| ]) |
| fig.update_layout( |
| title="Monthly Cost Comparison", |
| yaxis_title="Cost ($)", |
| barmode='group', |
| height=300, |
| ) |
| |
| return { |
| roi_results: { |
| "monthly_revenue": f"${revenue:,.0f}", |
| "monthly_incidents": incidents, |
| "auto_heal_rate": f"{auto_heal_rate*100:.1f}%", |
| "mttr_improvement": f"{mttr_reduction*100:.0f}%", |
| "monthly_savings": f"${monthly_savings:,.0f}", |
| "annual_savings": f"${annual_savings:,.0f}", |
| "implementation_cost": f"${implementation_cost:,.0f}", |
| "payback_period": f"{payback_months:.1f} months", |
| "first_year_roi": f"{first_year_roi:.1f}%", |
| "key_metrics": { |
| "incidents_auto_healed": f"{auto_healed:.0f}/month", |
| "engineer_hours_saved": f"{(incidents * 2.5 * engineer_time_savings):.0f} hours/month", |
| "revenue_protected": f"${(incidents * incident_cost * auto_heal_rate):,.0f}/month", |
| } |
| }, |
| roi_chart: fig, |
| } |
| |
| calculate_roi_btn.click( |
| fn=calculate_roi, |
| inputs=[monthly_revenue, monthly_incidents, team_size, avg_incident_cost], |
| outputs=[roi_results, roi_chart] |
| ) |
| |
| |
| gr.Markdown(""" |
| --- |
| |
| **Ready to transform your reliability operations?** |
| |
| | Capability | OSS Edition | Enterprise Edition | |
| |------------|-------------|-------------------| |
| | **Execution** | ❌ Advisory only | ✅ Autonomous + Approval | |
| | **Learning** | ❌ No learning | ✅ Continuous learning engine | |
| | **Compliance** | ❌ No audit trails | ✅ SOC2/GDPR/HIPAA compliant | |
| | **Storage** | ⚠️ In-memory only | ✅ Persistent (Neo4j + PostgreSQL) | |
| | **Support** | ❌ Community | ✅ 24/7 Enterprise support | |
| | **ROI** | ❌ None | ✅ **5.2× average first year ROI** | |
| |
| **Contact:** enterprise@petterjuan.com | **Website:** https://arf.dev |
| **Documentation:** https://docs.arf.dev | **GitHub:** https://github.com/petterjuan/agentic-reliability-framework |
| """) |
| |
| return demo |
|
|
| |
| |
| |
|
|
| def main(): |
| """Main entry point""" |
| logging.basicConfig(level=logging.INFO) |
| logger = logging.getLogger(__name__) |
| |
| logger.info("=" * 80) |
| logger.info("🚀 Starting ARF Ultimate Investor Demo") |
| logger.info("=" * 80) |
| |
| demo = create_ultimate_demo() |
| demo.launch( |
| server_name="0.0.0.0", |
| server_port=7860, |
| share=False, |
| show_error=True |
| ) |
|
|
| if __name__ == "__main__": |
| main() |