savant-engine / savant_wrapper.py
antonypamo's picture
Create savant_wrapper.py
d8dfb33 verified
import numpy as np
from geometry_audit import GeometryAuditLog
from rrf_safe_similarity import stabilize_vector
class SavantWrapper:
def __init__(
self,
embedder,
r_min: float = 1e-4,
r_max: float = 1e4,
enable_audit: bool = True,
):
"""
embedder: callable(text) -> np.ndarray
"""
self.embedder = embedder
self.r_min = r_min
self.r_max = r_max
self.audit_log = GeometryAuditLog() if enable_audit else None
print("✅ SavantWrapper Initialized (Logarithmic Regularization Active).")
def encode(self, text: str) -> np.ndarray:
vec = self.embedder(text).astype(np.float64)
stabilized_vec, audit_event = stabilize_vector(
vec,
r_min=self.r_min,
r_max=self.r_max,
)
if audit_event and self.audit_log is not None:
self.audit_log.record(audit_event)
return stabilized_vec
def batch_encode(self, texts):
return np.vstack([self.encode(t) for t in texts])
def get_audit_log(self):
if self.audit_log is None:
return []
return self.audit_log.events