antonypamo commited on
Commit
d8dfb33
·
verified ·
1 Parent(s): 3b4ded9

Create savant_wrapper.py

Browse files
Files changed (1) hide show
  1. savant_wrapper.py +44 -0
savant_wrapper.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from geometry_audit import GeometryAuditLog
3
+ from rrf_safe_similarity import stabilize_vector
4
+
5
+
6
+ class SavantWrapper:
7
+ def __init__(
8
+ self,
9
+ embedder,
10
+ r_min: float = 1e-4,
11
+ r_max: float = 1e4,
12
+ enable_audit: bool = True,
13
+ ):
14
+ """
15
+ embedder: callable(text) -> np.ndarray
16
+ """
17
+ self.embedder = embedder
18
+ self.r_min = r_min
19
+ self.r_max = r_max
20
+ self.audit_log = GeometryAuditLog() if enable_audit else None
21
+
22
+ print("✅ SavantWrapper Initialized (Logarithmic Regularization Active).")
23
+
24
+ def encode(self, text: str) -> np.ndarray:
25
+ vec = self.embedder(text).astype(np.float64)
26
+
27
+ stabilized_vec, audit_event = stabilize_vector(
28
+ vec,
29
+ r_min=self.r_min,
30
+ r_max=self.r_max,
31
+ )
32
+
33
+ if audit_event and self.audit_log is not None:
34
+ self.audit_log.record(audit_event)
35
+
36
+ return stabilized_vec
37
+
38
+ def batch_encode(self, texts):
39
+ return np.vstack([self.encode(t) for t in texts])
40
+
41
+ def get_audit_log(self):
42
+ if self.audit_log is None:
43
+ return []
44
+ return self.audit_log.events