pub struct ChatCompletionRequest {Show 26 fields
pub model: String,
pub messages: Vec<Message>,
pub temperature: Option<f64>,
pub top_p: Option<f64>,
pub top_k: Option<u32>,
pub max_tokens: Option<u32>,
pub stream: Option<bool>,
pub stop: Option<Value>,
pub seed: Option<i64>,
pub frequency_penalty: Option<f64>,
pub presence_penalty: Option<f64>,
pub repetition_penalty: Option<f64>,
pub logit_bias: Option<Value>,
pub logprobs: Option<bool>,
pub top_logprobs: Option<u32>,
pub min_p: Option<f64>,
pub top_a: Option<f64>,
pub tools: Option<Vec<Tool>>,
pub tool_choice: Option<ToolChoice>,
pub response_format: Option<ResponseFormat>,
pub provider: Option<Provider>,
pub reasoning: Option<ReasoningConfig>,
pub transforms: Option<Vec<String>>,
pub plugins: Option<Vec<Plugin>>,
pub usage: Option<Value>,
pub user: Option<String>,
}Expand description
Chat-completions request payload.
Fields§
§model: StringModel id (e.g. google/gemini-3.1-flash-lite).
messages: Vec<Message>Conversation messages.
temperature: Option<f64>Sampling temperature (0.0 = deterministic, ~1.0 = creative).
top_p: Option<f64>Nucleus sampling probability.
top_k: Option<u32>Cap on tokens considered each step.
max_tokens: Option<u32>Max generated tokens.
stream: Option<bool>Stream-mode flag. The SDK forces Some(true) for streaming
methods and Some(false) for blocking methods.
stop: Option<Value>Stop sequence(s) — string or array of strings.
seed: Option<i64>Sampling seed for reproducibility.
frequency_penalty: Option<f64>Frequency penalty.
presence_penalty: Option<f64>Presence penalty.
repetition_penalty: Option<f64>Repetition penalty.
logit_bias: Option<Value>Per-token bias map (provider-specific shape).
logprobs: Option<bool>Request log-probabilities for the chosen tokens.
top_logprobs: Option<u32>Number of alternate tokens to report logprobs for.
min_p: Option<f64>Min-p sampling threshold.
top_a: Option<f64>Top-a sampling threshold.
tools: Option<Vec<Tool>>Tools the model may call.
tool_choice: Option<ToolChoice>Tool-selection strategy.
response_format: Option<ResponseFormat>Output format constraint (JSON schema / JSON mode).
provider: Option<Provider>Provider-routing parameters.
reasoning: Option<ReasoningConfig>Reasoning-token configuration.
transforms: Option<Vec<String>>Message-transform pipeline (e.g. ["middle-out"]).
plugins: Option<Vec<Plugin>>Plugin configuration (web search, file parsing, …).
usage: Option<Value>Provider-specific usage reporting hint.
user: Option<String>Opaque end-user identifier for abuse monitoring.
Implementations§
Source§impl ChatCompletionRequest
impl ChatCompletionRequest
Sourcepub fn new(model: impl Into<String>, messages: Vec<Message>) -> Self
pub fn new(model: impl Into<String>, messages: Vec<Message>) -> Self
Construct a new request with just the required fields.
Sourcepub fn with_tools(self, tools: Vec<Tool>) -> Self
pub fn with_tools(self, tools: Vec<Tool>) -> Self
Attach the list of tools the model may call.
Sourcepub fn with_tool_choice(self, choice: ToolChoice) -> Self
pub fn with_tool_choice(self, choice: ToolChoice) -> Self
Set the tool-selection strategy.
Sourcepub fn with_response_format(self, format: ResponseFormat) -> Self
pub fn with_response_format(self, format: ResponseFormat) -> Self
Set the response format directly.
Sourcepub fn with_json_schema(
self,
name: impl Into<String>,
strict: bool,
schema: Value,
) -> Self
pub fn with_json_schema( self, name: impl Into<String>, strict: bool, schema: Value, ) -> Self
Constrain responses to a named JSON schema. Sugar over
with_response_format(ResponseFormat::json_schema(...)).
Sourcepub fn with_json_mode(self) -> Self
pub fn with_json_mode(self) -> Self
Ask the model to emit a JSON object (no schema). Sugar over
with_response_format(ResponseFormat::json_object()).
Sourcepub fn with_transforms<S, I>(self, transforms: I) -> Self
pub fn with_transforms<S, I>(self, transforms: I) -> Self
Set the message-transform pipeline. Passing an empty slice explicitly disables OpenRouter’s default transforms.
Sourcepub fn with_provider(self, provider: Provider) -> Self
pub fn with_provider(self, provider: Provider) -> Self
Replace the provider-routing config with provider.
Sourcepub fn with_provider_order<S, I>(self, order: I) -> Self
pub fn with_provider_order<S, I>(self, order: I) -> Self
Preferred provider order.
Sourcepub fn with_provider_sort(self, sort: impl Into<String>) -> Self
pub fn with_provider_sort(self, sort: impl Into<String>) -> Self
Sort strategy: "throughput", "price", or "latency".
Sourcepub fn with_only_providers<S, I>(self, only: I) -> Self
pub fn with_only_providers<S, I>(self, only: I) -> Self
Restrict to this set of providers.
Sourcepub fn with_ignore_providers<S, I>(self, ignore: I) -> Self
pub fn with_ignore_providers<S, I>(self, ignore: I) -> Self
Exclude these providers.
Sourcepub fn with_quantizations<S, I>(self, q: I) -> Self
pub fn with_quantizations<S, I>(self, q: I) -> Self
Permitted quantization tiers.
Sourcepub fn with_max_price(self, price: Value) -> Self
pub fn with_max_price(self, price: Value) -> Self
Per-token max-price filter.
Sourcepub fn with_data_collection(self, policy: impl Into<String>) -> Self
pub fn with_data_collection(self, policy: impl Into<String>) -> Self
Data-collection policy: "allow" or "deny".
Sourcepub fn with_require_parameters(self, required: bool) -> Self
pub fn with_require_parameters(self, required: bool) -> Self
Require providers to accept all sampling parameters.
Sourcepub fn with_allow_fallbacks(self, allow: bool) -> Self
pub fn with_allow_fallbacks(self, allow: bool) -> Self
Allow / disallow OpenRouter to use other providers as fallbacks.
Sourcepub fn with_nitro(self) -> Self
pub fn with_nitro(self) -> Self
Shorthand for with_provider_sort("throughput") — equivalent to a
:nitro model suffix.
Sourcepub fn with_floor(self) -> Self
pub fn with_floor(self) -> Self
Shorthand for with_provider_sort("price") — equivalent to a
:floor model suffix.
Sourcepub fn with_reasoning(self, reasoning: ReasoningConfig) -> Self
pub fn with_reasoning(self, reasoning: ReasoningConfig) -> Self
Replace the full reasoning config.
Sourcepub fn with_reasoning_effort(self, effort: impl Into<String>) -> Self
pub fn with_reasoning_effort(self, effort: impl Into<String>) -> Self
Set the reasoning effort ("low", "medium", "high").
Sourcepub fn with_reasoning_max_tokens(self, max_tokens: u32) -> Self
pub fn with_reasoning_max_tokens(self, max_tokens: u32) -> Self
Cap the reasoning-token budget for this request.
Sourcepub fn with_reasoning_exclude(self, exclude: bool) -> Self
pub fn with_reasoning_exclude(self, exclude: bool) -> Self
Ask the provider to omit reasoning content from the response.
Sourcepub fn with_plugins(self, plugins: Vec<Plugin>) -> Self
pub fn with_plugins(self, plugins: Vec<Plugin>) -> Self
Replace the plugin list.
Sourcepub fn with_web_search(self) -> Self
pub fn with_web_search(self) -> Self
Enable the default web-search plugin. Equivalent to
with_plugins(vec![Plugin::web()]), but preserves any plugins
already configured (web is pushed onto the existing list).
Trait Implementations§
Source§impl Clone for ChatCompletionRequest
impl Clone for ChatCompletionRequest
Source§fn clone(&self) -> ChatCompletionRequest
fn clone(&self) -> ChatCompletionRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more