pub struct ModelProfile {Show 20 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 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).
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<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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> 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