pub struct CompactionPolicy {
pub window: Option<u64>,
pub budget: Option<u64>,
pub min_remaining: u64,
pub keep_recent_tokens: u64,
pub keep_recent_turns: usize,
}Expand description
When to compact and how much recent context to retain.
The model window is not stored here: it comes from crate::limits (the
model’s advertised context) or an override, and is passed to
CompactionPolicy::should_compact. budget is an optional working
ceiling (cost control) that defaults to the window; min_remaining is the
“minimum remaining context” trigger; the keep_recent_* fields are the
absolute recent history retained after compacting.
Fields§
§window: Option<u64>Context-window override, consulted only when crate::limits doesn’t
know the model (see CompactionPolicy::context_window). None =
derive it from the catalog, or fall back to a default.
budget: Option<u64>Working ceiling in tokens. None = the model window. Capped to the
window at trigger time, so it can never disable window safety.
min_remaining: u64Compact once fewer than this many tokens remain below the ceiling
(used >= ceiling - min_remaining).
keep_recent_tokens: u64Recent context kept verbatim after compacting, in tokens.
keep_recent_turns: usizeComplete turns always kept, whatever their token size.
Implementations§
Source§impl CompactionPolicy
impl CompactionPolicy
Sourcepub fn ceiling(&self, window: u64) -> u64
pub fn ceiling(&self, window: u64) -> u64
The working ceiling: the configured budget, capped to the model window.
Sourcepub fn context_window(&self, base_url: Option<&str>, model: &str) -> u64
pub fn context_window(&self, base_url: Option<&str>, model: &str) -> u64
The context window for model served from base_url: the model’s
advertised context (via crate::limits) when known, else the
configured CompactionPolicy::window, else
crate::limits::DEFAULT_CONTEXT_WINDOW.
Sourcepub fn should_compact(&self, window: u64, used: u64) -> bool
pub fn should_compact(&self, window: u64, used: u64) -> bool
True once the provider-reported used input tokens leave less than
min_remaining free below the ceiling.
Trait Implementations§
Source§impl Clone for CompactionPolicy
impl Clone for CompactionPolicy
impl Copy for CompactionPolicy
Source§impl Debug for CompactionPolicy
impl Debug for CompactionPolicy
Source§impl Default for CompactionPolicy
impl Default for CompactionPolicy
impl Eq for CompactionPolicy
Source§impl PartialEq for CompactionPolicy
impl PartialEq for CompactionPolicy
impl StructuralPartialEq for CompactionPolicy
Auto Trait Implementations§
impl Freeze for CompactionPolicy
impl RefUnwindSafe for CompactionPolicy
impl Send for CompactionPolicy
impl Sync for CompactionPolicy
impl Unpin for CompactionPolicy
impl UnsafeUnpin for CompactionPolicy
impl UnwindSafe for CompactionPolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.