mod private
{
use crate::components::common::{ Metadata, VoiceIdsShared, Error };
use crate::components::tools::{ Tool };
use crate::components::realtime_shared::conversation::
{
RealtimeConversationItem,
RealtimeConversationItemWithReference,
};
use serde::{ Serialize, Deserialize };
use serde_json::Value;
#[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseStatusDetails
{
pub r#type : String,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub reason : Option< String >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub error : Option< Error >,
}
#[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseInputTokenDetails
{
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub cached_tokens : Option< i32 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub text_tokens : Option< i32 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub audio_tokens : Option< i32 >,
}
#[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseOutputTokenDetails
{
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub text_tokens : Option< i32 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub audio_tokens : Option< i32 >,
}
#[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseUsage
{
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub total_tokens : Option< i32 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub input_tokens : Option< i32 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub output_tokens : Option< i32 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub input_token_details : Option< RealtimeResponseInputTokenDetails >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub output_token_details : Option< RealtimeResponseOutputTokenDetails >,
}
#[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponse
{
pub id : String,
pub object : String,
pub status : String,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub status_details : Option< RealtimeResponseStatusDetails >,
pub output : Vec< RealtimeConversationItem >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub metadata : Option< Metadata >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub usage : Option< RealtimeResponseUsage >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub conversation_id : Option< String >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub voice : Option< VoiceIdsShared >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub modalities : Option< Vec< String > >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub output_audio_format : Option< String >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub temperature : Option< f64 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub max_response_output_tokens : Option< Value >, }
#[ derive( Debug, Serialize, Deserialize, Clone, PartialEq, former::Former ) ] pub struct RealtimeResponseCreateParams
{
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub modalities : Option< Vec< String > >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub instructions : Option< String >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub voice : Option< VoiceIdsShared >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub output_audio_format : Option< String >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub tools : Option< Vec< Tool > >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub tool_choice : Option< String >, #[ serde( skip_serializing_if = "Option::is_none" ) ]
pub temperature : Option< f64 >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub max_response_output_tokens : Option< Value >, #[ serde( skip_serializing_if = "Option::is_none" ) ]
pub conversation : Option< String >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub metadata : Option< Metadata >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub input : Option< Vec< RealtimeConversationItemWithReference > >,
}
}
crate ::mod_interface!
{
exposed use
{
RealtimeResponseStatusDetails,
RealtimeResponseInputTokenDetails,
RealtimeResponseOutputTokenDetails,
RealtimeResponseUsage,
RealtimeResponse,
RealtimeResponseCreateParams,
};
}