pub struct ModelCapabilitiesCache { /* private fields */ }Expand description
Thread-safe cache for learned model capabilities.
Capabilities are discovered dynamically and cached for future use. The cache persists for the lifetime of the application.
Implementations§
Source§impl ModelCapabilitiesCache
impl ModelCapabilitiesCache
Sourcepub fn new() -> ModelCapabilitiesCache
pub fn new() -> ModelCapabilitiesCache
Create a new empty cache
Sourcepub fn get(&self, provider: &str, model_id: &str) -> ModelCapabilities
pub fn get(&self, provider: &str, model_id: &str) -> ModelCapabilities
Get capabilities for a model, using cache or falling back to heuristics
Sourcepub fn learn_from_error(
&self,
provider: &str,
model_id: &str,
error_message: &str,
) -> Option<ModelCapabilities>
pub fn learn_from_error( &self, provider: &str, model_id: &str, error_message: &str, ) -> Option<ModelCapabilities>
Learn model capabilities from a context_length_exceeded error message.
Parses error messages like:
- “maximum context length is 16385 tokens”
- “your messages resulted in 17063 tokens”
Returns the learned capabilities if parsing succeeded.
Sourcepub fn store_from_api(&self, caps: ModelCapabilities)
pub fn store_from_api(&self, caps: ModelCapabilities)
Store capabilities discovered from API
Sourcepub fn store_user_override(
&self,
provider: &str,
model_id: &str,
context_length: usize,
)
pub fn store_user_override( &self, provider: &str, model_id: &str, context_length: usize, )
Store user-configured override
Trait Implementations§
Source§impl Clone for ModelCapabilitiesCache
impl Clone for ModelCapabilitiesCache
Source§fn clone(&self) -> ModelCapabilitiesCache
fn clone(&self) -> ModelCapabilitiesCache
Returns a duplicate of the value. Read more
1.0.0 · 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 ModelCapabilitiesCache
impl Debug for ModelCapabilitiesCache
Source§impl Default for ModelCapabilitiesCache
impl Default for ModelCapabilitiesCache
Source§fn default() -> ModelCapabilitiesCache
fn default() -> ModelCapabilitiesCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ModelCapabilitiesCache
impl RefUnwindSafe for ModelCapabilitiesCache
impl Send for ModelCapabilitiesCache
impl Sync for ModelCapabilitiesCache
impl Unpin for ModelCapabilitiesCache
impl UnwindSafe for ModelCapabilitiesCache
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().