Terminal / agents /fallback_utils.py
Baida—-
deploy: full backend sync for Node A [Kernel Restore]
8b87770 verified
Raw
History Blame Contribute Delete
975 Bytes
"""fallback_utils.py — Funzioni di utilità per il loop di fallback.
Estratto da unified_loop_fallback.py (split 2026-06-30).
"""
import re
def _is_refusal(text: str) -> bool:
"""Verifica se la risposta del modello è un rifiuto (S129)."""
if not text: return False
refusals = ["mi dispiace", "non posso", "i apologize", "i cannot", "unauthorized", "access denied"]
t = text.lower()
return any(r in t for r in refusals)
def _s759_bjac(a: str, b: str) -> float:
"""Calcola la somiglianza di Jaccard tra due stringhe (S759)."""
if not a or not b: return 0.0
set_a = set(a.lower().split())
set_b = set(b.lower().split())
intersection = len(set_a.intersection(set_b))
union = len(set_a.union(set_b))
return intersection / union if union > 0 else 0.0
def _avg10(lst: list) -> float:
"""Calcola la media degli ultimi 10 elementi di una lista."""
if not lst: return 0.0
sub = lst[-10:]
return sum(sub) / len(sub)