Codette3.0 / Codette_final /ai_core_agix.py
Raiff1982's picture
Upload 347 files
93917f2 verified
import aiohttp
import json
import logging
import faiss
import numpy as np
import ollama # Using Ollama for local Llama 3 inference
from typing import List, Dict, Any
from cryptography.fernet import Fernet
from jwt import encode, decode, ExpiredSignatureError
from datetime import datetime, timedelta
import pyttsx3
from components.adaptive_learning import AdaptiveLearningEnvironment
from components.real_time_data import RealTimeDataIntegrator
from components.sentiment_analysis import EnhancedSentimentAnalyzer
from components.self_improving_ai import SelfImprovingAI
from components.multi_agent import MultiAgentSystem
from utils.database import Database
from utils.logger import logger
class AICore:
def __init__(self, config_path: str = "config.json"):
self.config = self._load_config(config_path)
self.http_session = aiohttp.ClientSession()
self.database = Database()
self.sentiment_analyzer = EnhancedSentimentAnalyzer()
self.data_fetcher = RealTimeDataIntegrator()
self.self_improving_ai = SelfImprovingAI()
self.multi_agent_system = MultiAgentSystem()
self._encryption_key = Fernet.generate_key()
self.jwt_secret = "your_jwt_secret_key"
self.speech_engine = pyttsx3.init()
# FAISS Vector Memory
self.memory_index = faiss.IndexFlatL2(768)
self.memory_vectors = []
self.memory_texts = []
def _load_config(self, config_path: str) -> dict:
with open(config_path, 'r') as file:
return json.load(file)
async def generate_response(self, query: str, user_id: int) -> Dict[str, Any]:
try:
self.store_interaction(query)
previous_context = self.retrieve_past_context(query)
refined_query = f"{previous_context}\nUser: {query}" if previous_context else query
model_response = await self._recursive_refinement(refined_query, 3)
agent_response = self.multi_agent_system.delegate_task(query)
sentiment = self.sentiment_analyzer.detailed_analysis(query)
final_response = self._apply_security_filters(model_response + agent_response)
self.database.log_interaction(user_id, query, final_response)
self._speak_response(final_response)
return {
"response": final_response,
"sentiment": sentiment,
"security_level": self._evaluate_risk(final_response),
"real_time_data": self.data_fetcher.fetch_latest_data(),
"token_optimized": True
}
except Exception as e:
logger.error(f"Response generation failed: {e}")
return {"error": "Processing failed - safety protocols engaged"}
async def _recursive_refinement(self, query: str, depth: int = 3) -> str:
best_response = await self._generate_local_model_response(query)
for _ in range(depth):
new_response = await self._generate_local_model_response(f"Refine this answer: {best_response}")
if len(new_response) > len(best_response):
best_response = new_response
return best_response
async def _generate_local_model_response(self, query: str) -> str:
response = ollama.chat(model="llama3", messages=[{"role": "user", "content": query}])
return response["message"]["content"]
def store_interaction(self, query: str):
query_vector = self._vectorize_text(query)
self.memory_index.add(np.array([query_vector]))
self.memory_vectors.append(query_vector)
self.memory_texts.append(query)
def retrieve_past_context(self, query: str):
query_vector = self._vectorize_text(query)
_, indices = self.memory_index.search(np.array([query_vector]), k=3)
return "\n".join([self.memory_texts[i] for i in indices[0] if i < len(self.memory_texts)])
def _vectorize_text(self, text: str):
return np.random.rand(768) # Replace with an actual embedding model
def _apply_security_filters(self, response: str):
return response.replace("malicious", "[filtered]")
def _speak_response(self, response: str):
self.speech_engine.say(response)
self.speech_engine.runAndWait()
def _evaluate_risk(self, response: str) -> str:
if "dangerous" in response or "malicious" in response:
return "High Risk"
return "Low Risk"