pub struct CacheMiddleware { /* private fields */ }Expand description
Middleware that memoizes generate / stream responses keyed by
CallOptions.
Combine with retry / logging via super::wrap_language_model; the
recommended order is [logging, retry, cache, model] so cache hits skip
retries entirely and logging records both fresh and cached calls.
Implementations§
Source§impl CacheMiddleware
impl CacheMiddleware
Sourcepub fn new(store: Arc<dyn CacheStore>) -> Self
pub fn new(store: Arc<dyn CacheStore>) -> Self
Build a middleware backed by store.
Trait Implementations§
Source§impl Clone for CacheMiddleware
impl Clone for CacheMiddleware
Source§fn clone(&self) -> CacheMiddleware
fn clone(&self) -> CacheMiddleware
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 moreSource§impl Debug for CacheMiddleware
impl Debug for CacheMiddleware
Source§impl LanguageModelMiddleware for CacheMiddleware
impl LanguageModelMiddleware for CacheMiddleware
Source§fn wrap_generate<'life0, 'life1, 'async_trait>(
&'life0 self,
next: &'life1 dyn LanguageModel,
params: CallOptions,
) -> Pin<Box<dyn Future<Output = Result<GenerateResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn wrap_generate<'life0, 'life1, 'async_trait>(
&'life0 self,
next: &'life1 dyn LanguageModel,
params: CallOptions,
) -> Pin<Box<dyn Future<Output = Result<GenerateResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Wrap a non-streaming generation. Read more
Source§fn wrap_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
next: &'life1 dyn LanguageModel,
params: CallOptions,
) -> Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn wrap_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
next: &'life1 dyn LanguageModel,
params: CallOptions,
) -> Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Wrap a streaming generation. Read more
Source§fn override_provider(&self, _inner: &dyn LanguageModel) -> Option<String>
fn override_provider(&self, _inner: &dyn LanguageModel) -> Option<String>
Override the provider id exposed by the wrapped model. Read more
Source§fn override_model_id(&self, _inner: &dyn LanguageModel) -> Option<String>
fn override_model_id(&self, _inner: &dyn LanguageModel) -> Option<String>
Override the model id exposed by the wrapped model. Read more
Source§fn override_supported_urls<'life0, 'life1, 'async_trait>(
&'life0 self,
_inner: &'life1 dyn LanguageModel,
) -> Pin<Box<dyn Future<Output = Option<SupportedUrls>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn override_supported_urls<'life0, 'life1, 'async_trait>(
&'life0 self,
_inner: &'life1 dyn LanguageModel,
) -> Pin<Box<dyn Future<Output = Option<SupportedUrls>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Override the supported-URL map exposed by the wrapped model. Read more
Source§fn transform_params<'life0, 'life1, 'async_trait>(
&'life0 self,
_kind: CallKind,
params: CallOptions,
_inner: &'life1 dyn LanguageModel,
) -> Pin<Box<dyn Future<Output = Result<CallOptions>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn transform_params<'life0, 'life1, 'async_trait>(
&'life0 self,
_kind: CallKind,
params: CallOptions,
_inner: &'life1 dyn LanguageModel,
) -> Pin<Box<dyn Future<Output = Result<CallOptions>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Transform the call options before they reach the inner model. Read more
Auto Trait Implementations§
impl Freeze for CacheMiddleware
impl !RefUnwindSafe for CacheMiddleware
impl Send for CacheMiddleware
impl Sync for CacheMiddleware
impl Unpin for CacheMiddleware
impl UnsafeUnpin for CacheMiddleware
impl !UnwindSafe for CacheMiddleware
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