pub struct ReasoningConfig {
pub enabled: Option<bool>,
pub effort: Option<ReasoningEffort>,
pub summary: Option<ReasoningSummary>,
}Expand description
Reasoning-model controls for a chat completion request.
Three independent knobs, each serialized only when set:
effortmaps to the official OpenAI Chat Completionsreasoning_effortparameter (accepted by OpenAI and most OpenAI-compatible gateways, including OpenRouter).enabledmaps to the OpenRouter extension objectreasoning: {"enabled": bool}.enabled: falsestops reasoning models from emitting chain-of-thought intocontent(which would otherwise also burnmax_tokenson reasoning). This key is only sent when you explicitly set it — pure-OpenAI endpoints never see it otherwise.summaryrides inside the samereasoningobject; the key and its values (auto/concise/detailed) follow the official OpenAI Responses-APIreasoning.summaryparameter, which OpenRouter’s chat completions endpoint also accepts.
Forwarded by OpenAIClient in both complete
and stream_complete. AnthropicClient
has no mapping for these controls (extended thinking is configured
per-model there) and ignores them.
Fields§
§enabled: Option<bool>On/off toggle for providers with an explicit switch (OpenRouter
reasoning.enabled).
effort: Option<ReasoningEffort>How much the model reasons (OpenAI reasoning_effort).
summary: Option<ReasoningSummary>Reasoning summary style (OpenAI Responses reasoning.summary).
Implementations§
Source§impl ReasoningConfig
impl ReasoningConfig
Sourcepub fn disabled() -> Self
pub fn disabled() -> Self
Turn reasoning off where the provider supports an explicit switch
(serializes reasoning: {"enabled": false} — the OpenRouter form).
Sourcepub fn effort(effort: ReasoningEffort) -> Self
pub fn effort(effort: ReasoningEffort) -> Self
Request a specific reasoning effort (serializes reasoning_effort).
Trait Implementations§
Source§impl Clone for ReasoningConfig
impl Clone for ReasoningConfig
Source§fn clone(&self) -> ReasoningConfig
fn clone(&self) -> ReasoningConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 ReasoningConfig
impl Debug for ReasoningConfig
Source§impl Default for ReasoningConfig
impl Default for ReasoningConfig
Source§fn default() -> ReasoningConfig
fn default() -> ReasoningConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ReasoningConfig
impl<'de> Deserialize<'de> for ReasoningConfig
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 ReasoningConfig
impl RefUnwindSafe for ReasoningConfig
impl Send for ReasoningConfig
impl Sync for ReasoningConfig
impl Unpin for ReasoningConfig
impl UnsafeUnpin for ReasoningConfig
impl UnwindSafe for ReasoningConfig
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
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>,
impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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 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>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> 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().Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.