pub struct ModelProfile {Show 21 fields
pub name: String,
pub family: String,
pub description: Option<String>,
pub release_date: Option<String>,
pub last_updated: Option<String>,
pub attachment: bool,
pub reasoning: bool,
pub temperature: bool,
pub knowledge: Option<String>,
pub tool_call: bool,
pub structured_output: bool,
pub open_weights: bool,
pub cost: Option<ModelCost>,
pub limits: Option<ModelLimits>,
pub modalities: Option<ModelModalities>,
pub reasoning_effort: Option<ReasoningEffortConfig>,
pub speed: Option<SpeedConfig>,
pub verbosity: Option<VerbosityConfig>,
pub tool_search: bool,
pub supported_parameters: Vec<String>,
pub supports_phases: bool,
}Expand description
LLM Model Profile describing model capabilities Based on models.dev structure (https://models.dev/api.json)
NOTE: Currently only includes profiles for:
- OpenAI: gpt-4o, gpt-4o-mini, o1, o1-mini, o1-pro, o3-mini
- Anthropic: claude-3-5-sonnet, claude-3-5-haiku, claude-3-opus, claude-3-sonnet, claude-3-haiku, claude-sonnet-4, claude-opus-4
Additional model profiles can be added as needed.
Fields§
§name: StringDisplay name of the model
family: StringModel family (e.g., “gpt-4o”, “claude-3-5-sonnet”)
description: Option<String>Short human-readable description of the model’s strengths and intended use
release_date: Option<String>Release date (YYYY-MM-DD format)
last_updated: Option<String>Last updated date (YYYY-MM-DD format)
attachment: boolWhether the model supports file/image attachments
reasoning: boolWhether the model has reasoning/chain-of-thought capabilities
temperature: boolWhether temperature control is supported
knowledge: Option<String>Knowledge cutoff date (YYYY-MM-DD format)
tool_call: boolWhether the model supports tool/function calling
structured_output: boolWhether the model supports structured output (JSON mode)
open_weights: boolWhether the model has open weights
cost: Option<ModelCost>Cost per million tokens
limits: Option<ModelLimits>Token limits
modalities: Option<ModelModalities>Supported modalities
reasoning_effort: Option<ReasoningEffortConfig>Reasoning effort configuration (for reasoning models)
speed: Option<SpeedConfig>Speed (service tier) configuration, for models served with
selectable latency/price tiers (OpenAI service_tier).
verbosity: Option<VerbosityConfig>Verbosity configuration, for models that expose output-length
control (OpenAI verbosity).
tool_search: boolWhether the model supports tool_search (deferred tool loading). When true, the driver can use namespaces and defer_loading to reduce token usage for large tool sets. Currently supported by GPT-5.4 and newer.
supported_parameters: Vec<String>Provider-advertised request parameters supported by this model.
supports_phases: boolWhether the model supports native execution phases (“commentary” / “final_answer”).
When true, the driver sends the phase field on assistant messages in the wire format.
Currently supported by GPT-5.4 and newer via OpenAI Responses API.
Trait Implementations§
Source§impl Clone for ModelProfile
impl Clone for ModelProfile
Source§fn clone(&self) -> ModelProfile
fn clone(&self) -> ModelProfile
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModelProfile
impl Debug for ModelProfile
Source§impl<'de> Deserialize<'de> for ModelProfile
impl<'de> Deserialize<'de> for ModelProfile
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ModelProfile, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ModelProfile, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for ModelProfile
impl Serialize for ModelProfile
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for ModelProfile
impl RefUnwindSafe for ModelProfile
impl Send for ModelProfile
impl Sync for ModelProfile
impl Unpin for ModelProfile
impl UnsafeUnpin for ModelProfile
impl UnwindSafe for ModelProfile
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
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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 moreSource§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>
T in a tonic::Request