use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ChatCompletionCreateParams {
pub messages: Vec<super::Message>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provider: Option<super::Provider>,
pub model: super::Model,
#[serde(skip_serializing_if = "Option::is_none")]
pub models: Option<Vec<super::Model>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub top_logprobs: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub response_format: Option<super::ResponseFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub seed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stream: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tool_choice: Option<super::ToolChoice>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tools: Option<Vec<super::Tool>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parallel_tool_calls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prediction: Option<super::Prediction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backoff_max_elapsed_time: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub first_chunk_timeout: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub other_chunk_timeout: Option<u64>,
}