gproxy_protocol/openai/realtime/server_events/payloads/
conversation.rs1use serde::{Deserialize, Serialize};
2
3use crate::openai::common::Rest;
4
5use super::super::super::RealtimeItem;
6
7#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
8#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
9pub struct RealtimeConversationItemEvent {
10 pub item: RealtimeItem,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub previous_item_id: Option<String>,
13 #[serde(default, flatten)]
14 pub rest: Rest,
15}
16
17#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
18#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
19pub struct RealtimeConversationItemRetrievedEvent {
20 pub item: RealtimeItem,
21 #[serde(default, flatten)]
22 pub rest: Rest,
23}
24
25#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
26#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
27pub struct RealtimeConversationItemTruncatedEvent {
28 pub item_id: String,
29 pub content_index: u32,
30 pub audio_end_ms: u64,
31 #[serde(default, flatten)]
32 pub rest: Rest,
33}
34
35#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
36#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
37pub struct RealtimeConversationItemDeletedEvent {
38 pub item_id: String,
39 #[serde(default, flatten)]
40 pub rest: Rest,
41}
42
43#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
45#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
46pub struct RealtimeConversationCreatedEvent {
47 pub conversation: RealtimeConversationRef,
48 #[serde(default, flatten)]
49 pub rest: Rest,
50}
51
52#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
53#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
54pub struct RealtimeConversationRef {
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub id: Option<String>,
57 #[serde(skip_serializing_if = "Option::is_none")]
58 pub object: Option<String>,
59 #[serde(default, flatten)]
60 pub rest: Rest,
61}