simbioII / engine.py
antonypamo's picture
Upload 10 files
8a6ce4a verified
from resonance import ResonanceSimulator
from mappings import IcosaMap, DodecaMap
from music import MusicAdapter
from memory import MemoryStore
from self_improvement import SelfImprover
from api_helpers import chat_refine
import pandas as pd, json, os, time
class SavantEngine:
def __init__(self):
self.memory = MemoryStore("SAVANT_memory.jsonl")
self.icosa = IcosaMap()
self.dodeca = DodecaMap()
self.resonator = ResonanceSimulator()
self.music = MusicAdapter()
self.self_improver = SelfImprover(self.memory)
def _classify(self, text):
t = text.lower()
if any(k in t for k in ("equation", "dirac", "hamiltoniano")): return "equation"
if any(k in t for k in ("node", "icosahedron", "nodo")): return "node"
if any(k in t for k in ("freq", "music", "nota", "resonance")): return "resonance"
return "chat"
def handle_query(self, text, base_output=None):
kind = self._classify(text)
if kind == "resonance":
r = self.resonator.simulate(text)
seq = self.music.adapt_text_to_music(text)
response = f"🎵 Resonancia detectada. Frecuencia dominante: {r['summary']['dom_freq']:.4f} Hz. Secuencia inicial: {seq[:5]}"
else:
refined = chat_refine(text, base_output or "", self_improver=self.self_improver)
response = refined
self.memory.add({"type": kind, "query": text, "response": response, "_ts": time.time()})
return {"response": response}