ProviderCache

Struct ProviderCache 

Source
pub struct ProviderCache { /* private fields */ }
Expand description

Provider response cache

Caches AI provider responses to improve performance and reduce API calls. Uses SHA256 hash of request to create cache keys.

Implementations§

Source§

impl ProviderCache

Source

pub fn new( cache_dir: impl AsRef<Path>, ttl_seconds: u64, ) -> Result<Self, ProviderError>

Create a new provider cache

§Arguments
  • cache_dir - Directory to store cache files
  • ttl_seconds - Time-to-live for cache entries (default: 86400 = 24 hours)
§Errors

Returns error if cache directory cannot be created

Source

pub fn get( &self, provider: &str, model: &str, request: &ChatRequest, ) -> Result<Option<ChatResponse>, ProviderError>

Get a cached response

§Arguments
  • provider - Provider name (e.g., “openai”, “anthropic”)
  • model - Model name (e.g., “gpt-4”, “claude-3”)
  • request - Chat request
§Returns

Returns cached response if found and not expired, None otherwise

Source

pub fn set( &self, provider: &str, model: &str, request: &ChatRequest, response: &ChatResponse, ) -> Result<(), ProviderError>

Cache a response

§Arguments
  • provider - Provider name
  • model - Model name
  • request - Chat request
  • response - Chat response to cache
§Errors

Returns error if response cannot be cached

Source

pub fn invalidate( &self, provider: &str, model: &str, request: &ChatRequest, ) -> Result<bool, ProviderError>

Invalidate a cached response

§Arguments
  • provider - Provider name
  • model - Model name
  • request - Chat request
§Returns

Returns Ok(true) if entry was deleted, Ok(false) if entry didn’t exist

Source

pub fn clear(&self) -> Result<(), ProviderError>

Clear all cached responses

§Errors

Returns error if cache cannot be cleared

Source

pub fn cleanup_expired(&self) -> Result<usize, ProviderError>

Clean up expired cache entries

§Returns

Returns the number of entries cleaned up

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more