gproxy_protocol/wire/openai/realtime/
legacy_items.rs1use super::wire::present_optional;
6use crate::Rest;
7use serde::{Deserialize, Serialize};
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
12#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
13#[derive(gproxy_protocol_macros::DeclaredFields)]
14pub struct ConversationItemWithReferencePayload {
15 #[serde(
16 default,
17 deserialize_with = "present_optional",
18 skip_serializing_if = "Option::is_none"
19 )]
20 pub id: Option<String>,
21 #[serde(
22 default,
23 deserialize_with = "present_optional",
24 skip_serializing_if = "Option::is_none"
25 )]
26 pub arguments: Option<String>,
27 #[serde(
28 default,
29 deserialize_with = "present_optional",
30 skip_serializing_if = "Option::is_none"
31 )]
32 pub call_id: Option<String>,
33 #[serde(
34 default,
35 deserialize_with = "present_optional",
36 skip_serializing_if = "Option::is_none"
37 )]
38 pub content: Option<Vec<ConversationItemWithReferenceContent>>,
39 #[serde(
40 default,
41 deserialize_with = "present_optional",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub name: Option<String>,
45 #[serde(
46 default,
47 deserialize_with = "present_optional",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub object: Option<ConversationItemWithReferenceObject>,
51 #[serde(
52 default,
53 deserialize_with = "present_optional",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub output: Option<String>,
57 #[serde(
58 default,
59 deserialize_with = "present_optional",
60 skip_serializing_if = "Option::is_none"
61 )]
62 pub role: Option<ConversationItemWithReferenceRole>,
63 #[serde(
64 default,
65 deserialize_with = "present_optional",
66 skip_serializing_if = "Option::is_none"
67 )]
68 pub status: Option<ConversationItemWithReferenceStatus>,
69 #[serde(rename = "type")]
70 #[serde(
71 default,
72 deserialize_with = "present_optional",
73 skip_serializing_if = "Option::is_none"
74 )]
75 pub type_: Option<ConversationItemWithReferenceType>,
76 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
77 pub rest: Rest,
78}
79
80#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
82#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
83#[derive(gproxy_protocol_macros::DeclaredFields)]
84pub struct ConversationItemWithReferenceContent {
85 #[serde(
86 default,
87 deserialize_with = "present_optional",
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub id: Option<String>,
91 #[serde(
92 default,
93 deserialize_with = "present_optional",
94 skip_serializing_if = "Option::is_none"
95 )]
96 pub audio: Option<String>,
97 #[serde(
98 default,
99 deserialize_with = "present_optional",
100 skip_serializing_if = "Option::is_none"
101 )]
102 pub text: Option<String>,
103 #[serde(
104 default,
105 deserialize_with = "present_optional",
106 skip_serializing_if = "Option::is_none"
107 )]
108 pub transcript: Option<String>,
109 #[serde(rename = "type")]
110 #[serde(
111 default,
112 deserialize_with = "present_optional",
113 skip_serializing_if = "Option::is_none"
114 )]
115 pub type_: Option<ConversationItemWithReferenceContentType>,
116 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
117 pub rest: Rest,
118}
119
120#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
121#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
122#[derive(gproxy_protocol_macros::DeclaredFields)]
123pub enum ConversationItemWithReferenceObject {
124 #[serde(rename = "realtime.item")]
125 RealtimeItem,
126}
127
128#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
129#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
130#[derive(gproxy_protocol_macros::DeclaredFields)]
131pub enum ConversationItemWithReferenceRole {
132 #[serde(rename = "user")]
133 User,
134 #[serde(rename = "assistant")]
135 Assistant,
136 #[serde(rename = "system")]
137 System,
138}
139
140#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
141#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
142#[derive(gproxy_protocol_macros::DeclaredFields)]
143pub enum ConversationItemWithReferenceStatus {
144 #[serde(rename = "completed")]
145 Completed,
146 #[serde(rename = "incomplete")]
147 Incomplete,
148 #[serde(rename = "in_progress")]
149 InProgress,
150}
151
152#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
153#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
154#[derive(gproxy_protocol_macros::DeclaredFields)]
155pub enum ConversationItemWithReferenceType {
156 #[serde(rename = "message")]
157 Message,
158 #[serde(rename = "function_call")]
159 FunctionCall,
160 #[serde(rename = "function_call_output")]
161 FunctionCallOutput,
162}
163
164#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
165#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
166#[derive(gproxy_protocol_macros::DeclaredFields)]
167pub enum ConversationItemWithReferenceContentType {
168 #[serde(rename = "input_audio")]
169 InputAudio,
170 #[serde(rename = "input_text")]
171 InputText,
172 #[serde(rename = "item_reference")]
173 ItemReference,
174 #[serde(rename = "text")]
175 Text,
176}
177
178#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
180#[serde(untagged)]
181#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
182#[derive(gproxy_protocol_macros::DeclaredFields)]
183pub enum ConversationItemWithReference {
184 Item(ConversationItemWithReferencePayload),
185 Reference(ConversationItemReference),
186}
187#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
188#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
189#[derive(gproxy_protocol_macros::DeclaredFields)]
190pub struct ConversationItemReference {
191 pub id: String,
192 #[serde(rename = "type")]
193 pub type_: ConversationItemReferenceType,
194 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
195 pub rest: Rest,
196}
197#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
198#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
199#[derive(gproxy_protocol_macros::DeclaredFields)]
200pub enum ConversationItemReferenceType {
201 #[serde(rename = "item_reference")]
202 ItemReference,
203}