pub struct PromptCompressor {
pub max_tokens: usize,
pub compression_ratio: f64,
}Expand description
Applies lossless and near-lossless text compression to reduce token count.
Fields§
§max_tokens: usizeMaximum tokens the compressed output should occupy (soft limit).
compression_ratio: f64Target compression ratio (0.0–1.0). 0.8 means aim to keep 80% of chars.
Implementations§
Source§impl PromptCompressor
impl PromptCompressor
Sourcepub fn new(max_tokens: usize, compression_ratio: f64) -> Self
pub fn new(max_tokens: usize, compression_ratio: f64) -> Self
Create a compressor with the given limits.
Sourcepub fn compress(&self, text: &str) -> String
pub fn compress(&self, text: &str) -> String
Compress text by:
- Collapsing redundant whitespace.
- Deduplicating consecutive identical sentences.
- Dropping common filler phrases.
- Abbreviating frequent verbose patterns.
Sourcepub fn estimate_savings(&self, original: &str, compressed: &str) -> f64
pub fn estimate_savings(&self, original: &str, compressed: &str) -> f64
Fraction of characters saved: (orig - compressed) / orig.
Trait Implementations§
Source§impl Clone for PromptCompressor
impl Clone for PromptCompressor
Source§fn clone(&self) -> PromptCompressor
fn clone(&self) -> PromptCompressor
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PromptCompressor
impl RefUnwindSafe for PromptCompressor
impl Send for PromptCompressor
impl Sync for PromptCompressor
impl Unpin for PromptCompressor
impl UnsafeUnpin for PromptCompressor
impl UnwindSafe for PromptCompressor
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request