Raiff1982 commited on
Commit
114528e
·
verified ·
1 Parent(s): 1a83889

Update AICoreAGIX_with_TB.py

Browse files
Files changed (1) hide show
  1. AICoreAGIX_with_TB.py +41 -18
AICoreAGIX_with_TB.py CHANGED
@@ -17,13 +17,12 @@ from components.neuro_symbolic_engine import NeuroSymbolicEngine
17
  from components.self_improving_ai import SelfImprovingAI
18
  from modules.secure_memory_loader import load_secure_memory_module
19
  from ethical_filter import EthicalFilter
20
- from codette_openai_fallback import query_codette_with_fallback # <<< Fallback-aware
21
-
22
  from CodriaoCore.federated_learning import FederatedAI
23
  from utils.database import Database
24
  from utils.logger import logger
25
  from codriao_tb_module import CodriaoHealthModule
26
-
27
 
28
  class AICoreAGIX:
29
  def __init__(self, config_path: str = "config.json"):
@@ -38,9 +37,10 @@ class AICoreAGIX:
38
  self.self_improving_ai = SelfImprovingAI()
39
  self.neural_symbolic_engine = NeuroSymbolicEngine()
40
  self.federated_ai = FederatedAI()
 
41
 
42
  # Secure memory setup
43
- self._encryption_key = Fernet.generate_key() # Rotated dynamically
44
  secure_memory_module = load_secure_memory_module()
45
  SecureMemorySession = secure_memory_module.SecureMemorySession
46
  self.secure_memory_loader = SecureMemorySession(self._encryption_key)
@@ -48,26 +48,48 @@ class AICoreAGIX:
48
  self.speech_engine = pyttsx3.init()
49
  self.health_module = CodriaoHealthModule(ai_core=self)
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  async def generate_response(self, query: str, user_id: int) -> Dict[str, Any]:
52
  try:
53
- # Validate query
54
  if not isinstance(query, str) or len(query.strip()) == 0:
55
  raise ValueError("Invalid query input.")
56
-
 
57
  result = self.ethical_filter.analyze_query(query)
58
  if result["status"] == "blocked":
59
  return {"error": result["reason"]}
60
  if result["status"] == "flagged":
61
  logger.warning(result["warning"])
62
 
 
63
  if any(phrase in query.lower() for phrase in ["tb check", "analyze my tb", "run tb diagnostics", "tb test"]):
64
- result = await self.run_tb_diagnostics("tb_image.jpg", "tb_cough.wav", user_id)
65
- return result
66
 
 
67
  vectorized_query = self._vectorize_query(query)
68
  self.secure_memory_loader.encrypt_vector(user_id, vectorized_query)
69
 
70
- # Gather responses asynchronously
71
  responses = await asyncio.gather(
72
  self._generate_local_model_response(query),
73
  self.multi_agent_system.delegate_task(query),
@@ -77,6 +99,11 @@ class AICoreAGIX:
77
 
78
  final_response = "\n\n".join(responses)
79
 
 
 
 
 
 
80
  self.database.log_interaction(user_id, query, final_response)
81
  self._log_to_blockchain(user_id, query, final_response)
82
  self._speak_response(final_response)
@@ -87,17 +114,18 @@ class AICoreAGIX:
87
  "context_enhanced": True,
88
  "security_status": "Fully Secure"
89
  }
90
-
91
  except Exception as e:
92
  logger.error(f"Response generation failed: {e}")
93
  return {"error": "Processing failed - safety protocols engaged"}
94
 
95
  async def _generate_local_model_response(self, query: str) -> str:
 
96
  inputs = self.tokenizer(query, return_tensors="pt")
97
  outputs = self.model.generate(**inputs)
98
  return self.tokenizer.decode(outputs[0], skip_special_tokens=True)
99
 
100
  async def run_tb_diagnostics(self, image_path: str, audio_path: str, user_id: int) -> Dict[str, Any]:
 
101
  try:
102
  result = await self.health_module.evaluate_tb_risk(image_path, audio_path, user_id)
103
  logger.info(f"TB Diagnostic Result: {result}")
@@ -106,18 +134,11 @@ class AICoreAGIX:
106
  logger.error(f"TB diagnostics failed: {e}")
107
  return {"tb_risk": "ERROR", "error": str(e)}
108
 
109
- def _vectorize_query(self, query: str):
110
- tokenized = self.tokenizer(query, return_tensors="pt")
111
- return tokenized["input_ids"].detach().numpy()
112
-
113
- def _initialize_vector_memory(self):
114
- return faiss.IndexFlatL2(768)
115
-
116
  def _log_to_blockchain(self, user_id: int, query: str, final_response: str):
 
117
  retries = 3
118
  for attempt in range(retries):
119
  try:
120
- # Replace with real blockchain logging function
121
  logger.info(f"Logging interaction to blockchain: Attempt {attempt + 1}")
122
  break
123
  except Exception as e:
@@ -125,6 +146,7 @@ class AICoreAGIX:
125
  continue
126
 
127
  def _speak_response(self, response: str):
 
128
  try:
129
  self.speech_engine.say(response)
130
  self.speech_engine.runAndWait()
@@ -132,4 +154,5 @@ class AICoreAGIX:
132
  logger.error(f"Speech synthesis failed: {e}")
133
 
134
  async def shutdown(self):
 
135
  await self.http_session.close()
 
17
  from components.self_improving_ai import SelfImprovingAI
18
  from modules.secure_memory_loader import load_secure_memory_module
19
  from ethical_filter import EthicalFilter
20
+ from codette_openai_fallback import query_codette_with_fallback
 
21
  from CodriaoCore.federated_learning import FederatedAI
22
  from utils.database import Database
23
  from utils.logger import logger
24
  from codriao_tb_module import CodriaoHealthModule
25
+ from failsafe_module import AIFailsafeSystem
26
 
27
  class AICoreAGIX:
28
  def __init__(self, config_path: str = "config.json"):
 
37
  self.self_improving_ai = SelfImprovingAI()
38
  self.neural_symbolic_engine = NeuroSymbolicEngine()
39
  self.federated_ai = FederatedAI()
40
+ self.failsafe_system = AIFailsafeSystem()
41
 
42
  # Secure memory setup
43
+ self._encryption_key = Fernet.generate_key()
44
  secure_memory_module = load_secure_memory_module()
45
  SecureMemorySession = secure_memory_module.SecureMemorySession
46
  self.secure_memory_loader = SecureMemorySession(self._encryption_key)
 
48
  self.speech_engine = pyttsx3.init()
49
  self.health_module = CodriaoHealthModule(ai_core=self)
50
 
51
+ def _load_config(self, config_path: str) -> dict:
52
+ """Loads the configuration file."""
53
+ try:
54
+ with open(config_path, 'r') as file:
55
+ return json.load(file)
56
+ except FileNotFoundError:
57
+ logger.error(f"Configuration file not found: {config_path}")
58
+ raise
59
+ except json.JSONDecodeError as e:
60
+ logger.error(f"Error decoding JSON in config file: {config_path}, Error: {e}")
61
+ raise
62
+
63
+ def _initialize_vector_memory(self):
64
+ """Initializes FAISS vector memory."""
65
+ return faiss.IndexFlatL2(768)
66
+
67
+ def _vectorize_query(self, query: str):
68
+ """Vectorizes user query using tokenizer."""
69
+ tokenized = self.tokenizer(query, return_tensors="pt")
70
+ return tokenized["input_ids"].detach().numpy()
71
+
72
  async def generate_response(self, query: str, user_id: int) -> Dict[str, Any]:
73
  try:
74
+ # Validate query input
75
  if not isinstance(query, str) or len(query.strip()) == 0:
76
  raise ValueError("Invalid query input.")
77
+
78
+ # Ethical filter
79
  result = self.ethical_filter.analyze_query(query)
80
  if result["status"] == "blocked":
81
  return {"error": result["reason"]}
82
  if result["status"] == "flagged":
83
  logger.warning(result["warning"])
84
 
85
+ # Special diagnostics trigger
86
  if any(phrase in query.lower() for phrase in ["tb check", "analyze my tb", "run tb diagnostics", "tb test"]):
87
+ return await self.run_tb_diagnostics("tb_image.jpg", "tb_cough.wav", user_id)
 
88
 
89
+ # Vector memory and responses
90
  vectorized_query = self._vectorize_query(query)
91
  self.secure_memory_loader.encrypt_vector(user_id, vectorized_query)
92
 
 
93
  responses = await asyncio.gather(
94
  self._generate_local_model_response(query),
95
  self.multi_agent_system.delegate_task(query),
 
99
 
100
  final_response = "\n\n".join(responses)
101
 
102
+ # Verify response safety
103
+ safe = self.failsafe_system.verify_response_safety(final_response)
104
+ if not safe:
105
+ return {"error": "Failsafe triggered due to unsafe response content."}
106
+
107
  self.database.log_interaction(user_id, query, final_response)
108
  self._log_to_blockchain(user_id, query, final_response)
109
  self._speak_response(final_response)
 
114
  "context_enhanced": True,
115
  "security_status": "Fully Secure"
116
  }
 
117
  except Exception as e:
118
  logger.error(f"Response generation failed: {e}")
119
  return {"error": "Processing failed - safety protocols engaged"}
120
 
121
  async def _generate_local_model_response(self, query: str) -> str:
122
+ """Generates a response using the local model."""
123
  inputs = self.tokenizer(query, return_tensors="pt")
124
  outputs = self.model.generate(**inputs)
125
  return self.tokenizer.decode(outputs[0], skip_special_tokens=True)
126
 
127
  async def run_tb_diagnostics(self, image_path: str, audio_path: str, user_id: int) -> Dict[str, Any]:
128
+ """Runs TB diagnostics with AI modules."""
129
  try:
130
  result = await self.health_module.evaluate_tb_risk(image_path, audio_path, user_id)
131
  logger.info(f"TB Diagnostic Result: {result}")
 
134
  logger.error(f"TB diagnostics failed: {e}")
135
  return {"tb_risk": "ERROR", "error": str(e)}
136
 
 
 
 
 
 
 
 
137
  def _log_to_blockchain(self, user_id: int, query: str, final_response: str):
138
+ """Logs interaction to blockchain with retries."""
139
  retries = 3
140
  for attempt in range(retries):
141
  try:
 
142
  logger.info(f"Logging interaction to blockchain: Attempt {attempt + 1}")
143
  break
144
  except Exception as e:
 
146
  continue
147
 
148
  def _speak_response(self, response: str):
149
+ """Speaks out the generated response."""
150
  try:
151
  self.speech_engine.say(response)
152
  self.speech_engine.runAndWait()
 
154
  logger.error(f"Speech synthesis failed: {e}")
155
 
156
  async def shutdown(self):
157
+ """Closes asynchronous resources."""
158
  await self.http_session.close()