pub struct ChatCompletionRequest {
pub model: String,
pub messages: Vec<ChatMessage>,
pub tools: Option<Vec<Tool>>,
pub tool_choice: Option<ToolChoice>,
pub stream: Option<bool>,
pub stream_options: Option<StreamOptions>,
pub parameters: HashMap<String, Value>,
}Expand description
Chat completion request to LLM API.
Main request structure sent to LLM providers to generate chat completions with optional tool calling support.
§Fields
model- Model identifier (e.g., “gpt-4o-mini”, “claude-3-opus”)messages- Conversation historytools- Available tools for the modeltool_choice- Tool selection strategystream- Whether to stream the responsestream_options- Streaming optionsparameters- Additional model parameters (temperature, etc.)
§Example
ⓘ
let request = ChatCompletionRequest {
model: "gpt-4o-mini".to_string(),
messages: vec![
ChatMessage::user("What is Rust?"),
],
stream: Some(true),
..Default::default()
};Fields§
§model: StringThe model to use for the completion.
messages: Vec<ChatMessage>A list of messages comprising the conversation so far.
tools: Option<Vec<Tool>>A list of tools the model may call.
tool_choice: Option<ToolChoice>Controls which function is called by the model.
stream: Option<bool>Whether to stream the response.
stream_options: Option<StreamOptions>Options for streaming response. Set include_usage: true to receive usage information.
parameters: HashMap<String, Value>Additional parameters like temperature, top_p, etc.
Trait Implementations§
Source§impl Clone for ChatCompletionRequest
impl Clone for ChatCompletionRequest
Source§fn clone(&self) -> ChatCompletionRequest
fn clone(&self) -> ChatCompletionRequest
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ChatCompletionRequest
impl Debug for ChatCompletionRequest
Source§impl Default for ChatCompletionRequest
impl Default for ChatCompletionRequest
Source§fn default() -> ChatCompletionRequest
fn default() -> ChatCompletionRequest
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ChatCompletionRequest
impl<'de> Deserialize<'de> for ChatCompletionRequest
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 ChatCompletionRequest
impl RefUnwindSafe for ChatCompletionRequest
impl Send for ChatCompletionRequest
impl Sync for ChatCompletionRequest
impl Unpin for ChatCompletionRequest
impl UnsafeUnpin for ChatCompletionRequest
impl UnwindSafe for ChatCompletionRequest
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