pub struct ChatOptions {Show 20 fields
pub model: Option<String>,
pub allow_multiple_tool_calls: Option<bool>,
pub conversation_id: Option<String>,
pub frequency_penalty: Option<f32>,
pub instructions: Option<String>,
pub logit_bias: Option<HashMap<String, f32>>,
pub max_tokens: Option<u32>,
pub metadata: Option<HashMap<String, String>>,
pub presence_penalty: Option<f32>,
pub response_format: Option<ResponseFormat>,
pub seed: Option<i64>,
pub stop: Option<Vec<String>>,
pub store: Option<bool>,
pub temperature: Option<f32>,
pub tool_choice: Option<ToolMode>,
pub tools: Vec<ToolDefinition>,
pub top_p: Option<f32>,
pub user: Option<String>,
pub additional_properties: HashMap<String, Value>,
pub session: Option<AgentSession>,
}Expand description
Common per-request settings for a chat/AI service.
The ChatOptions::merge method implements the Python & operator: the
right-hand side wins per scalar field, list/map fields are combined, and
instructions are newline-concatenated.
Fields§
§model: Option<String>§allow_multiple_tool_calls: Option<bool>§conversation_id: Option<String>§frequency_penalty: Option<f32>§instructions: Option<String>§logit_bias: Option<HashMap<String, f32>>§max_tokens: Option<u32>§metadata: Option<HashMap<String, String>>§presence_penalty: Option<f32>§response_format: Option<ResponseFormat>The requested structured-output format, if any.
seed: Option<i64>§stop: Option<Vec<String>>§store: Option<bool>§temperature: Option<f32>§tool_choice: Option<ToolMode>§tools: Vec<ToolDefinition>§top_p: Option<f32>§user: Option<String>§additional_properties: HashMap<String, Value>§session: Option<AgentSession>The AgentSession of the agent run
this request belongs to, if any.
This is a framework-internal side channel, not a wire field: the
agent sets it in prepare_request, and the function-invocation loop
pops it (before the inner provider client ever sees the options) and
hands it to invoked tools via
FunctionInvocationContext::session —
which is what lets Agent::as_tool with propagate_session forward
the parent’s session to a sub-agent. Mirrors upstream, where the agent
passes session= through the chat-client kwargs and the
function-invocation layer pops it (_middleware.py:1188). Provider
converters must ignore it.
Implementations§
Source§impl ChatOptions
impl ChatOptions
pub fn new() -> ChatOptions
Sourcepub fn with_instructions(self, instructions: impl Into<String>) -> ChatOptions
pub fn with_instructions(self, instructions: impl Into<String>) -> ChatOptions
Builder: set the instructions (system prompt).
Sourcepub fn with_model(self, model: impl Into<String>) -> ChatOptions
pub fn with_model(self, model: impl Into<String>) -> ChatOptions
Builder: set the model id.
Sourcepub fn with_temperature(self, temperature: f32) -> ChatOptions
pub fn with_temperature(self, temperature: f32) -> ChatOptions
Builder: set the temperature.
Sourcepub fn with_max_tokens(self, max_tokens: u32) -> ChatOptions
pub fn with_max_tokens(self, max_tokens: u32) -> ChatOptions
Builder: set the max output tokens.
Sourcepub fn with_tool(self, tool: ToolDefinition) -> ChatOptions
pub fn with_tool(self, tool: ToolDefinition) -> ChatOptions
Builder: add a tool.
Sourcepub fn with_tool_choice(self, mode: ToolMode) -> ChatOptions
pub fn with_tool_choice(self, mode: ToolMode) -> ChatOptions
Builder: set the tool choice.
Sourcepub fn with_response_format(self, format: ResponseFormat) -> ChatOptions
pub fn with_response_format(self, format: ResponseFormat) -> ChatOptions
Builder: set the structured-output response format.
Sourcepub fn merge(self, other: ChatOptions) -> ChatOptions
pub fn merge(self, other: ChatOptions) -> ChatOptions
Merge other into self, with other taking precedence per the
Python ChatOptions.__and__ semantics.
Trait Implementations§
Source§impl Clone for ChatOptions
impl Clone for ChatOptions
Source§fn clone(&self) -> ChatOptions
fn clone(&self) -> ChatOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more