#[non_exhaustive]pub struct GenerationOptions {
pub reasoning: Option<Reasoning>,
pub cache: Option<CacheRetention>,
pub service_tier: Option<ServiceTier>,
pub verbosity: Option<Verbosity>,
pub parallel_tool_calls: Option<bool>,
pub top_p: Option<f64>,
pub seed: Option<u64>,
pub stop: Vec<String>,
pub on_unsupported: Option<OnUnsupported>,
}Expand description
Provider-neutral generation knobs for one request. An unset field leaves
the provider’s default. A field the wire or model cannot honour is
reported through Self::unsupported_policy, never silently dropped.
This is the reusable value: build it once and hand it to an agent
(AgentBuilder::options), overlay a run’s on an agent’s
(Self::overlay), or store it serialized with a request. For a single
request, CompletionRequest, AgentBuilder and AgentRunner also have
a shortcut per field (.seed(7)) that writes that one field into their
options.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.reasoning: Option<Reasoning>How much the model reasons before answering.
cache: Option<CacheRetention>How long the provider keeps the prompt prefix cached.
service_tier: Option<ServiceTier>The processing tier the request asks for.
verbosity: Option<Verbosity>How long the answer should be.
parallel_tool_calls: Option<bool>Whether the model may call several tools in one turn.
top_p: Option<f64>Nucleus sampling probability mass.
seed: Option<u64>Sampling seed, for providers that offer best-effort determinism.
stop: Vec<String>Sequences that end generation. Empty means none.
on_unsupported: Option<OnUnsupported>What happens to an option the wire or model cannot honour. None
leaves the policy unset, which acts as OnUnsupported::Error
(Self::unsupported_policy); a set policy counts as setting an
option.
Implementations§
Source§impl GenerationOptions
impl GenerationOptions
Sourcepub fn new() -> Self
pub fn new() -> Self
No option set and no policy set; the same as Self::default.
Sourcepub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
Whether every field holds its default: no option set, and no policy set. A request whose options are default is not checked against its model’s catalog rules; setting any field, the policy included, turns the checks on.
Sourcepub fn unsupported_policy(&self) -> OnUnsupported
pub fn unsupported_policy(&self) -> OnUnsupported
The policy in effect: the one set, or OnUnsupported::Error.
Sourcepub fn reasoning(self, reasoning: impl Into<Reasoning>) -> Self
pub fn reasoning(self, reasoning: impl Into<Reasoning>) -> Self
Set the reasoning level or budget.
Sourcepub fn cache(self, cache: CacheRetention) -> Self
pub fn cache(self, cache: CacheRetention) -> Self
Set the cache retention.
Sourcepub fn service_tier(self, tier: ServiceTier) -> Self
pub fn service_tier(self, tier: ServiceTier) -> Self
Set the service tier.
Sourcepub fn parallel_tool_calls(self, parallel: bool) -> Self
pub fn parallel_tool_calls(self, parallel: bool) -> Self
Allow or forbid several tool calls in one turn.
Sourcepub fn stop<S: Into<String>>(self, stop: impl IntoIterator<Item = S>) -> Self
pub fn stop<S: Into<String>>(self, stop: impl IntoIterator<Item = S>) -> Self
Replace the stop sequences.
Sourcepub fn on_unsupported(self, policy: OnUnsupported) -> Self
pub fn on_unsupported(self, policy: OnUnsupported) -> Self
Set what happens to an option the wire or model cannot honour.
Sourcepub fn fields(&self) -> OptionFields<'_>
pub fn fields(&self) -> OptionFields<'_>
Every option but the policy, borrowed, as a wire maps it.
Destructures self with no .., so a new field fails to compile
here first.
Sourcepub fn overlay(self, over: &GenerationOptions) -> GenerationOptions
pub fn overlay(self, over: &GenerationOptions) -> GenerationOptions
self with every field over sets put on top: a Some option, a
non-empty stop list, a set on_unsupported (so a run can restore
Error over an agent’s Ignore). Every other
field keeps self’s value. An agent’s options overlaid with a run’s
give the run’s where it sets one.
Trait Implementations§
Source§impl Clone for GenerationOptions
impl Clone for GenerationOptions
Source§impl Debug for GenerationOptions
impl Debug for GenerationOptions
Source§impl Default for GenerationOptions
impl Default for GenerationOptions
Source§impl<'de> Deserialize<'de> for GenerationOptions
impl<'de> Deserialize<'de> for GenerationOptions
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>,
Source§impl PartialEq for GenerationOptions
impl PartialEq for GenerationOptions
Source§impl Serialize for GenerationOptions
impl Serialize for GenerationOptions
impl StructuralPartialEq for GenerationOptions
Auto Trait Implementations§
impl Freeze for GenerationOptions
impl RefUnwindSafe for GenerationOptions
impl Send for GenerationOptions
impl Sync for GenerationOptions
impl Unpin for GenerationOptions
impl UnsafeUnpin for GenerationOptions
impl UnwindSafe for GenerationOptions
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> 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 more