pub struct OpenAIRequest {
pub model: String,
pub messages: Vec<OpenAIMessage>,
pub stream: bool,
pub max_tokens: Option<u32>,
pub temperature: Option<f32>,
pub tools: Option<Vec<Value>>,
}Expand description
Complete request payload for OpenAI chat completions API.
This struct is serialized and sent as the request body when making API calls to OpenAI-compatible endpoints. It includes the model, conversation history, and configuration parameters.
§Streaming
The SDK always uses streaming mode (stream: true) to enable real-time
response processing and better user experience.
§Optional Fields
Fields marked with skip_serializing_if are omitted from the JSON payload
when None, allowing the API provider to use its defaults.
§Example
use open_agent_sdk::types::{OpenAIRequest, OpenAIMessage};
let request = OpenAIRequest {
model: "gpt-4".to_string(),
messages: vec![
OpenAIMessage {
role: "user".to_string(),
content: "Hello!".to_string(),
tool_calls: None,
tool_call_id: None,
}
],
stream: true,
max_tokens: Some(1000),
temperature: Some(0.7),
tools: None,
};Fields§
§model: StringModel identifier (e.g., “gpt-4”, “qwen2.5-32b-instruct”).
messages: Vec<OpenAIMessage>Conversation history as a sequence of messages.
Includes system prompt, user messages, assistant responses, and tool results. Order matters - messages are processed sequentially.
stream: boolWhether to stream the response.
The SDK always sets this to true for better user experience.
Streaming allows incremental processing of responses rather than
waiting for the entire completion.
max_tokens: Option<u32>Maximum tokens to generate (optional).
None uses the provider’s default. Some providers require this
to be set explicitly.
temperature: Option<f32>Sampling temperature (optional).
None uses the provider’s default. Controls randomness in
generation.
tools: Option<Vec<Value>>Tools/functions available to the model (optional).
When present, enables function calling. Each tool is described
with a JSON schema defining its parameters. None means no
tools are available.
Trait Implementations§
Source§impl Clone for OpenAIRequest
impl Clone for OpenAIRequest
Source§fn clone(&self) -> OpenAIRequest
fn clone(&self) -> OpenAIRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more