Spaces:
Build error
Build error
File size: 1,040 Bytes
51ff9e5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from __future__ import annotations
from openhands.core.config.condenser_config import RecentEventsCondenserConfig
from openhands.memory.condenser.condenser import Condensation, Condenser, View
class RecentEventsCondenser(Condenser):
"""A condenser that only keeps a certain number of the most recent events."""
def __init__(self, keep_first: int = 1, max_events: int = 10):
self.keep_first = keep_first
self.max_events = max_events
super().__init__()
def condense(self, view: View) -> View | Condensation:
"""Keep only the most recent events (up to `max_events`)."""
head = view[: self.keep_first]
tail_length = max(0, self.max_events - len(head))
tail = view[-tail_length:]
return View(events=head + tail)
@classmethod
def from_config(cls, config: RecentEventsCondenserConfig) -> RecentEventsCondenser:
return RecentEventsCondenser(**config.model_dump(exclude=['type']))
RecentEventsCondenser.register_config(RecentEventsCondenserConfig)
|