CV10 / src /aegis_integration /aegis_bridge.py
Raiff1982's picture
Upload 24 files
559af1d verified
import importlib
import logging
from typing import Dict, Any, Optional, List
logger = logging.getLogger(__name__)
def check_dependencies() -> List[str]:
"""Check if all required packages are installed."""
required_packages = [
'plotly',
'torch',
'transformers',
'pandas',
'numpy',
'networkx'
]
missing = []
for package in required_packages:
try:
importlib.import_module(package)
except ImportError:
missing.append(package)
return missing
# Check dependencies before importing AEGIS components
missing_packages = check_dependencies()
if missing_packages:
raise ImportError(
f"AEGIS requires the following packages to be installed: {', '.join(missing_packages)}. "
f"Please install them using: pip install {' '.join(missing_packages)}"
)
from .aegis import AegisCouncil, MetaJudgeAgent, TemporalAgent, VirtueAgent
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).parent.parent))
from ai_core import AICore
class AegisBridge:
def __init__(self, ai_core: AICore, config: Dict[str, Any]):
self.ai_core = ai_core
self.council = AegisCouncil(config)
# Register default agents
self.council.register_agent(MetaJudgeAgent("MetaJudgeAgent", self.council.memory, config["meta_judge_weights"]))
self.council.register_agent(TemporalAgent("TemporalAgent", self.council.memory, config["temporal_decay_thresholds"]))
virtue_agent = VirtueAgent("VirtueAgent", self.council.memory, config["virtue_weights"])
virtue_agent.set_federated_trainer(self.council.federated_trainer)
self.council.register_agent(virtue_agent)
def enhance_response(self, prompt: str, response: str) -> Dict[str, Any]:
"""
Enhance Codette's response using AEGIS analysis
"""
input_data = {
"text": response,
"overrides": {
"EthosiaAgent": {"influence": 0.7, "reliability": 0.8, "severity": 0.6},
"AegisCore": {"influence": 0.6, "reliability": 0.9, "severity": 0.7}
}
}
# Dispatch to AEGIS council
self.council.dispatch(input_data)
# Get analysis results
reports = self.council.get_reports()
virtue_profile = reports.get("VirtueAgent", {}).get("result", {}).get("virtue_profile", {})
temporal_analysis = reports.get("TemporalAgent", {}).get("result", {})
meta_scores = reports.get("MetaJudgeAgent", {}).get("result", {}).get("scores", [])
return {
"original_response": response,
"virtue_analysis": virtue_profile,
"temporal_analysis": temporal_analysis,
"meta_scores": meta_scores,
"enhanced_response": self._apply_enhancements(response, virtue_profile)
}
def _apply_enhancements(self, response: str, virtue_profile: Dict[str, float]) -> str:
"""
Apply virtue-based enhancements to the response
"""
# Apply wisdom score to improve clarity
if virtue_profile.get("wisdom", 0) < 0.5:
response = self.ai_core.self_refine_response(response)
# Add empathetic framing for low compassion
if virtue_profile.get("compassion", 0) < 0.5:
response = self.ai_core.generate_text(
f"Make this response more empathetic while preserving its meaning: {response}",
perspective="human_intuition"
)
return response
def get_analysis_graphs(self) -> Dict[str, str]:
"""
Generate and return analysis visualizations
"""
try:
self.council.draw_explainability_graph("aegis_analysis.html")
return {
"explainability_graph": "aegis_analysis.html"
}
except Exception as e:
return {"error": str(e)}
def get_memory_state(self) -> Dict[str, Any]:
"""
Return the current state of AEGIS memory
"""
return self.council.memory.audit()