Limit rollback snapshots and relax HA timeouts
This commit is contained in:
@@ -32,6 +32,8 @@ from app.ha.models import HaEntitySummary
|
||||
from app.ha.reader import HaReader
|
||||
|
||||
_MAX_PATTERNS = 500
|
||||
_MAX_MODEL_SNAPSHOTS = 3
|
||||
_MAX_SNAPSHOT_PATTERNS = 120
|
||||
_MAX_EXECUTION_EVENTS = 100
|
||||
_ACTION_LOGBOOK_TOLERANCE = timedelta(seconds=10)
|
||||
_CONTEXT_TRIGGER_TOLERANCE = timedelta(seconds=3)
|
||||
@@ -937,6 +939,11 @@ class BehaviorEngine:
|
||||
record: ActuatorRecord,
|
||||
behavior: BehaviorState,
|
||||
) -> ActuatorRecord:
|
||||
behavior = behavior.model_copy(
|
||||
update={
|
||||
"model_snapshots": _compact_model_snapshots(behavior.model_snapshots),
|
||||
}
|
||||
)
|
||||
updated = record.model_copy(
|
||||
update={
|
||||
"behavior": behavior,
|
||||
@@ -1132,10 +1139,19 @@ def _next_model_snapshots(
|
||||
high_confidence_sample_count=trusted_actions,
|
||||
average_confidence=round(average_confidence, 4),
|
||||
incorrect_feedback_count=incorrect_feedback_count,
|
||||
patterns=patterns,
|
||||
patterns=patterns[-_MAX_SNAPSHOT_PATTERNS:],
|
||||
reason=reason,
|
||||
)
|
||||
return [*existing, snapshot][-10:]
|
||||
return _compact_model_snapshots([*existing, snapshot])
|
||||
|
||||
|
||||
def _compact_model_snapshots(existing: list[ModelSnapshot]) -> list[ModelSnapshot]:
|
||||
return [
|
||||
snapshot.model_copy(
|
||||
update={"patterns": snapshot.patterns[-_MAX_SNAPSHOT_PATTERNS:]}
|
||||
)
|
||||
for snapshot in existing[-_MAX_MODEL_SNAPSHOTS:]
|
||||
]
|
||||
|
||||
|
||||
def _average(values: list[float]) -> float:
|
||||
|
||||
Reference in New Issue
Block a user