pub struct Reasoning {
pub effort: Option<ReasoningEffort>,
pub summary: Option<ReasoningSummaryLevel>,
pub mode: Option<ReasoningMode>,
pub context: Option<ReasoningContext>,
}Expand description
Add reasoning to a CompletionRequest.
§Example
use rig_core::providers::openai::responses_api::{
Reasoning, ReasoningContext, ReasoningEffort, ReasoningMode,
};
// GPT-5.6 reasoning controls: effort, pro mode, and persisted-reasoning context.
let reasoning = Reasoning::new()
.with_effort(ReasoningEffort::Max)
.with_mode(ReasoningMode::Pro)
.with_context(ReasoningContext::AllTurns);Fields§
§effort: Option<ReasoningEffort>How much effort you want the model to put into thinking/reasoning.
summary: Option<ReasoningSummaryLevel>How much effort you want the model to put into writing the reasoning summary.
mode: Option<ReasoningMode>The reasoning mode. Independent from effort; the standard mode is
represented by omitting the field. Supported by the GPT-5.6 model family.
context: Option<ReasoningContext>How persisted reasoning is carried across turns. Supported by the GPT-5.6 model family.
Implementations§
Source§impl Reasoning
impl Reasoning
Sourcepub fn with_effort(self, reasoning_effort: ReasoningEffort) -> Self
pub fn with_effort(self, reasoning_effort: ReasoningEffort) -> Self
Adds reasoning effort.
Sourcepub fn with_summary_level(
self,
reasoning_summary_level: ReasoningSummaryLevel,
) -> Self
pub fn with_summary_level( self, reasoning_summary_level: ReasoningSummaryLevel, ) -> Self
Adds summary level (how detailed the reasoning summary will be).
Sourcepub fn with_mode(self, reasoning_mode: ReasoningMode) -> Self
pub fn with_mode(self, reasoning_mode: ReasoningMode) -> Self
Sets the reasoning mode (e.g. pro mode on GPT-5.6 models).
Sourcepub fn with_context(self, reasoning_context: ReasoningContext) -> Self
pub fn with_context(self, reasoning_context: ReasoningContext) -> Self
Sets how persisted reasoning is carried across turns (GPT-5.6 models).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Reasoning
impl<'de> Deserialize<'de> for Reasoning
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 Reasoning
impl RefUnwindSafe for Reasoning
impl Send for Reasoning
impl Sync for Reasoning
impl Unpin for Reasoning
impl UnsafeUnpin for Reasoning
impl UnwindSafe for Reasoning
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>,
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> 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> IntoToolOutput for Twhere
T: Serialize + 'static,
impl<T> IntoToolOutput for Twhere
T: Serialize + 'static,
Source§fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>
fn into_tool_output(self) -> Result<ToolOutput, ToolExecutionError>
Convert this value without routing structured data through a string.