api_openai/components/realtime_shared/
response.rs1mod private
5{
6 use crate::components::common::{ Metadata, VoiceIdsShared, Error };
8 use crate::components::tools::{ Tool };
9 use crate::components::realtime_shared::conversation::
10 {
11 RealtimeConversationItem,
12 RealtimeConversationItemWithReference,
13 };
14
15 use serde::{ Serialize, Deserialize };
17 use serde_json::Value; #[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseStatusDetails
25 {
26 pub r#type : String,
28 #[ serde( skip_serializing_if = "Option::is_none" ) ]
30 pub reason : Option< String >,
31 #[ serde( skip_serializing_if = "Option::is_none" ) ]
33 pub error : Option< Error >,
34 }
35
36 #[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseInputTokenDetails
42 {
43 #[ serde( skip_serializing_if = "Option::is_none" ) ]
45 pub cached_tokens : Option< i32 >,
46 #[ serde( skip_serializing_if = "Option::is_none" ) ]
48 pub text_tokens : Option< i32 >,
49 #[ serde( skip_serializing_if = "Option::is_none" ) ]
51 pub audio_tokens : Option< i32 >,
52 }
53
54 #[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseOutputTokenDetails
60 {
61 #[ serde( skip_serializing_if = "Option::is_none" ) ]
63 pub text_tokens : Option< i32 >,
64 #[ serde( skip_serializing_if = "Option::is_none" ) ]
66 pub audio_tokens : Option< i32 >,
67 }
68
69 #[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponseUsage
75 {
76 #[ serde( skip_serializing_if = "Option::is_none" ) ]
78 pub total_tokens : Option< i32 >,
79 #[ serde( skip_serializing_if = "Option::is_none" ) ]
81 pub input_tokens : Option< i32 >,
82 #[ serde( skip_serializing_if = "Option::is_none" ) ]
84 pub output_tokens : Option< i32 >,
85 #[ serde( skip_serializing_if = "Option::is_none" ) ]
87 pub input_token_details : Option< RealtimeResponseInputTokenDetails >,
88 #[ serde( skip_serializing_if = "Option::is_none" ) ]
90 pub output_token_details : Option< RealtimeResponseOutputTokenDetails >,
91 }
92
93 #[ derive( Debug, Serialize, Deserialize, Clone, PartialEq ) ] pub struct RealtimeResponse
100 {
101 pub id : String,
103 pub object : String,
105 pub status : String,
107 #[ serde( skip_serializing_if = "Option::is_none" ) ]
109 pub status_details : Option< RealtimeResponseStatusDetails >,
110 pub output : Vec< RealtimeConversationItem >,
112 #[ serde( skip_serializing_if = "Option::is_none" ) ]
114 pub metadata : Option< Metadata >,
115 #[ serde( skip_serializing_if = "Option::is_none" ) ]
117 pub usage : Option< RealtimeResponseUsage >,
118 #[ serde( skip_serializing_if = "Option::is_none" ) ]
120 pub conversation_id : Option< String >,
121 #[ serde( skip_serializing_if = "Option::is_none" ) ]
123 pub voice : Option< VoiceIdsShared >,
124 #[ serde( skip_serializing_if = "Option::is_none" ) ]
126 pub modalities : Option< Vec< String > >,
127 #[ serde( skip_serializing_if = "Option::is_none" ) ]
129 pub output_audio_format : Option< String >,
130 #[ serde( skip_serializing_if = "Option::is_none" ) ]
132 pub temperature : Option< f64 >,
133 #[ serde( skip_serializing_if = "Option::is_none" ) ]
135 pub max_response_output_tokens : Option< Value >, }
137
138 #[ derive( Debug, Serialize, Deserialize, Clone, PartialEq, former::Former ) ] pub struct RealtimeResponseCreateParams
144 {
145 #[ serde( skip_serializing_if = "Option::is_none" ) ]
147 pub modalities : Option< Vec< String > >,
148 #[ serde( skip_serializing_if = "Option::is_none" ) ]
150 pub instructions : Option< String >,
151 #[ serde( skip_serializing_if = "Option::is_none" ) ]
153 pub voice : Option< VoiceIdsShared >,
154 #[ serde( skip_serializing_if = "Option::is_none" ) ]
156 pub output_audio_format : Option< String >,
157 #[ serde( skip_serializing_if = "Option::is_none" ) ]
159 pub tools : Option< Vec< Tool > >,
160 #[ serde( skip_serializing_if = "Option::is_none" ) ]
162 pub tool_choice : Option< String >, #[ serde( skip_serializing_if = "Option::is_none" ) ]
165 pub temperature : Option< f64 >,
166 #[ serde( skip_serializing_if = "Option::is_none" ) ]
168 pub max_response_output_tokens : Option< Value >, #[ serde( skip_serializing_if = "Option::is_none" ) ]
171 pub conversation : Option< String >,
172 #[ serde( skip_serializing_if = "Option::is_none" ) ]
174 pub metadata : Option< Metadata >,
175 #[ serde( skip_serializing_if = "Option::is_none" ) ]
177 pub input : Option< Vec< RealtimeConversationItemWithReference > >,
178 }
179
180} crate ::mod_interface!
183{
184 exposed use
185 {
186 RealtimeResponseStatusDetails,
187 RealtimeResponseInputTokenDetails,
188 RealtimeResponseOutputTokenDetails,
189 RealtimeResponseUsage,
190 RealtimeResponse,
191 RealtimeResponseCreateParams,
192 };
193}