/*
* OpenAI API
*
* The OpenAI REST API. Please see pub https://platform.openai.com/docs/api-reference for more details.
*
* OpenAPI spec pub version: 2.3.0
*
* Generated pub by: https://github.com/swagger-api/swagger-codegen.git
*/
/// pub RealtimeResponse : The response resource.
#[allow(unused_imports)]
use serde_json::Value;
#[derive(Debug, Serialize, Deserialize)]
pub struct RealtimeResponse {
/// Which conversation the response is added to, determined by the `conversation` field in the `response.create` event. If `auto`, the response will be added to the default conversation and the value of `conversation_id` will be an id like `conv_1234`. If `none`, the response will not be added to any conversation and the value of `conversation_id` will be `null`. If responses are being triggered by server VAD, the response will be added to the default conversation, thus the `conversation_id` will be an id like `conv_1234`.
#[serde(rename = "conversation_id")]
pub conversation_id: Option<String>,
/// The unique ID of the response.
#[serde(rename = "id")]
pub id: Option<String>,
/// Maximum number of output tokens for a single assistant response, inclusive of tool calls, that was used in this response.
#[serde(rename = "max_output_tokens")]
pub max_output_tokens: Option<Value>,
#[serde(rename = "metadata")]
pub metadata: Option<crate::models::Metadata>,
/// The set of modalities the model used to respond. If there are multiple modalities, the model will pick one, for example if `modalities` is `[\"text\", \"audio\"]`, the model could be responding in either text or audio.
#[serde(rename = "modalities")]
pub modalities: Option<Vec<String>>,
/// The object type, must be `realtime.response`.
#[serde(rename = "object")]
pub object: Option<String>,
/// The list of output items generated by the response.
#[serde(rename = "output")]
pub output: Option<Vec<crate::models::RealtimeConversationItem>>,
/// The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
#[serde(rename = "output_audio_format")]
pub output_audio_format: Option<String>,
/// The final status of the response (`completed`, `cancelled`, `failed`, or `incomplete`).
#[serde(rename = "status")]
pub status: Option<String>,
#[serde(rename = "status_details")]
pub status_details: Option<crate::models::RealtimeResponseStatusDetails>,
/// Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8.
#[serde(rename = "temperature")]
pub temperature: Option<f32>,
#[serde(rename = "usage")]
pub usage: Option<crate::models::RealtimeResponseUsage>,
/// The voice the model used to respond. Current voice options are `alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `onyx`, `nova`, `sage`, `shimmer`, and `verse`.
#[serde(rename = "voice")]
pub voice: Option<crate::models::VoiceIdsShared>,
}