Update app.py
Browse files
app.py
CHANGED
|
@@ -1593,7 +1593,7 @@ def create_enhanced_ui():
|
|
| 1593 |
# 🧠 Agentic Reliability Framework
|
| 1594 |
**Multi-Agent AI System for Production Reliability**
|
| 1595 |
|
| 1596 |
-
|
| 1597 |
|
| 1598 |
""")
|
| 1599 |
|
|
@@ -1716,7 +1716,7 @@ def create_enhanced_ui():
|
|
| 1716 |
allowed, rate_msg = rate_limiter.is_allowed()
|
| 1717 |
if not allowed:
|
| 1718 |
logger.warning(f"Rate limit exceeded")
|
| 1719 |
-
return rate_msg, {}, {},
|
| 1720 |
|
| 1721 |
# Type conversion
|
| 1722 |
try:
|
|
@@ -1728,7 +1728,7 @@ def create_enhanced_ui():
|
|
| 1728 |
except (ValueError, TypeError) as e:
|
| 1729 |
error_msg = f"❌ Invalid input types: {str(e)}"
|
| 1730 |
logger.warning(error_msg)
|
| 1731 |
-
return error_msg, {}, {},
|
| 1732 |
|
| 1733 |
# Input validation
|
| 1734 |
is_valid, error_msg = validate_inputs(
|
|
@@ -1736,7 +1736,7 @@ def create_enhanced_ui():
|
|
| 1736 |
)
|
| 1737 |
if not is_valid:
|
| 1738 |
logger.warning(f"Invalid input: {error_msg}")
|
| 1739 |
-
return error_msg, {}, {},
|
| 1740 |
|
| 1741 |
# FIXED: Direct async call - no event loop creation needed
|
| 1742 |
result = await enhanced_engine.process_event_enhanced(
|
|
@@ -1745,7 +1745,7 @@ def create_enhanced_ui():
|
|
| 1745 |
|
| 1746 |
# Handle errors
|
| 1747 |
if 'error' in result:
|
| 1748 |
-
return f"❌ {result['error']}", {}, {},
|
| 1749 |
|
| 1750 |
# Build table data (THREAD-SAFE)
|
| 1751 |
table_data = []
|
|
@@ -1791,6 +1791,23 @@ def create_enhanced_ui():
|
|
| 1791 |
|
| 1792 |
agent_insights_data = result.get("multi_agent_analysis", {})
|
| 1793 |
predictive_insights_data = agent_insights_data.get('predictive_insights', {})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1794 |
|
| 1795 |
# FIXED: Use async handler directly
|
| 1796 |
submit_btn.click(
|
|
|
|
| 1593 |
# 🧠 Agentic Reliability Framework
|
| 1594 |
**Multi-Agent AI System for Production Reliability**
|
| 1595 |
|
| 1596 |
+
_Specialized AI agents working together to detect, diagnose, predict, and heal system issues_
|
| 1597 |
|
| 1598 |
""")
|
| 1599 |
|
|
|
|
| 1716 |
allowed, rate_msg = rate_limiter.is_allowed()
|
| 1717 |
if not allowed:
|
| 1718 |
logger.warning(f"Rate limit exceeded")
|
| 1719 |
+
return rate_msg, {}, {}, gr.Dataframe(value=[])
|
| 1720 |
|
| 1721 |
# Type conversion
|
| 1722 |
try:
|
|
|
|
| 1728 |
except (ValueError, TypeError) as e:
|
| 1729 |
error_msg = f"❌ Invalid input types: {str(e)}"
|
| 1730 |
logger.warning(error_msg)
|
| 1731 |
+
return error_msg, {}, {}, gr.Dataframe(value=[])
|
| 1732 |
|
| 1733 |
# Input validation
|
| 1734 |
is_valid, error_msg = validate_inputs(
|
|
|
|
| 1736 |
)
|
| 1737 |
if not is_valid:
|
| 1738 |
logger.warning(f"Invalid input: {error_msg}")
|
| 1739 |
+
return error_msg, {}, {}, gr.Dataframe(value=[])
|
| 1740 |
|
| 1741 |
# FIXED: Direct async call - no event loop creation needed
|
| 1742 |
result = await enhanced_engine.process_event_enhanced(
|
|
|
|
| 1745 |
|
| 1746 |
# Handle errors
|
| 1747 |
if 'error' in result:
|
| 1748 |
+
return f"❌ {result['error']}", {}, {}, gr.Dataframe(value=[])
|
| 1749 |
|
| 1750 |
# Build table data (THREAD-SAFE)
|
| 1751 |
table_data = []
|
|
|
|
| 1791 |
|
| 1792 |
agent_insights_data = result.get("multi_agent_analysis", {})
|
| 1793 |
predictive_insights_data = agent_insights_data.get('predictive_insights', {})
|
| 1794 |
+
|
| 1795 |
+
# RETURN THE RESULTS
|
| 1796 |
+
return (
|
| 1797 |
+
output_msg,
|
| 1798 |
+
agent_insights_data,
|
| 1799 |
+
predictive_insights_data,
|
| 1800 |
+
gr.Dataframe(
|
| 1801 |
+
headers=["Timestamp", "Component", "Latency", "Error Rate", "Throughput", "Severity", "Analysis"],
|
| 1802 |
+
value=table_data,
|
| 1803 |
+
wrap=True
|
| 1804 |
+
)
|
| 1805 |
+
)
|
| 1806 |
+
|
| 1807 |
+
except Exception as e:
|
| 1808 |
+
error_msg = f"❌ Error processing event: {str(e)}"
|
| 1809 |
+
logger.error(error_msg, exc_info=True)
|
| 1810 |
+
return error_msg, {}, {}, gr.Dataframe(value=[])
|
| 1811 |
|
| 1812 |
# FIXED: Use async handler directly
|
| 1813 |
submit_btn.click(
|