simbioII / engine.py
antonypamo's picture
Upload 10 files
8a6ce4a verified
Raw History Blame Contribute Delete
1.53 kB
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}