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) -> Reasoning
pub fn with_effort(self, reasoning_effort: ReasoningEffort) -> Reasoning
Adds reasoning effort.
Sourcepub fn with_summary_level(
self,
reasoning_summary_level: ReasoningSummaryLevel,
) -> Reasoning
pub fn with_summary_level( self, reasoning_summary_level: ReasoningSummaryLevel, ) -> Reasoning
Adds summary level (how detailed the reasoning summary will be).
Sourcepub fn with_mode(self, reasoning_mode: ReasoningMode) -> Reasoning
pub fn with_mode(self, reasoning_mode: ReasoningMode) -> Reasoning
Sets the reasoning mode (e.g. pro mode on GPT-5.6 models).
Sourcepub fn with_context(self, reasoning_context: ReasoningContext) -> Reasoning
pub fn with_context(self, reasoning_context: ReasoningContext) -> Reasoning
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<Reasoning, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Reasoning, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Reasoning
impl Serialize for Reasoning
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,
Serialize this value into the given Serde serializer. 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> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CloneableStorage for T
impl<T> CloneableStorage for T
fn clone_storage(&self) -> Box<dyn CloneableStorage>
impl<T> DebuggableStorage for T
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> 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.