pub struct ModelMetadata {
pub version: u16,
pub models: HashMap<Pattern, ModelMetadataEntry>,
}Expand description
Metadata for AI models including costs and context size.
Example JSON:
{
"version": 1,
"models": {
"gpt-4": {
"costs": {
"inputPerToken": 0.0000003,
"outputPerToken": 0.00000165,
"outputReasoningPerToken": 0.0,
"inputCachedPerToken": 0.0000015,
"inputCacheWritePerToken": 0.00001875
},
"contextSize": 1000000
}
}
}Fields§
§version: u16The version of the model metadata struct.
models: HashMap<Pattern, ModelMetadataEntry>The mappings of model ID => metadata as a dictionary.
Implementations§
Source§impl ModelMetadata
impl ModelMetadata
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
true if the model metadata is empty or the version is unsupported.
Sourcepub fn is_enabled(&self) -> bool
pub fn is_enabled(&self) -> bool
false if the version is unsupported.
Sourcepub fn cost_per_token(&self, model_id: &str) -> Option<&ModelCostV2>
pub fn cost_per_token(&self, model_id: &str) -> Option<&ModelCostV2>
Gets the cost per token for a given model, if defined.
Sourcepub fn context_size(&self, model_id: &str) -> Option<u64>
pub fn context_size(&self, model_id: &str) -> Option<u64>
Gets the context window size for a given model, if defined.
Returns None for a zero context size, as it is not a meaningful value.
Sourcepub fn get(&self, model_id: &str) -> Option<&ModelMetadataEntry>
pub fn get(&self, model_id: &str) -> Option<&ModelMetadataEntry>
Gets the metadata for a given model, if defined.
Trait Implementations§
Source§impl Clone for ModelMetadata
impl Clone for ModelMetadata
Source§fn clone(&self) -> ModelMetadata
fn clone(&self) -> ModelMetadata
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 ModelMetadata
impl Debug for ModelMetadata
Source§impl Default for ModelMetadata
impl Default for ModelMetadata
Source§fn default() -> ModelMetadata
fn default() -> ModelMetadata
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ModelMetadata
impl<'de> Deserialize<'de> for ModelMetadata
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ModelMetadata
impl RefUnwindSafe for ModelMetadata
impl Send for ModelMetadata
impl Sync for ModelMetadata
impl Unpin for ModelMetadata
impl UnsafeUnpin for ModelMetadata
impl UnwindSafe for ModelMetadata
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> 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].