gproxy_protocol/openai/realtime/server_events/payloads/
transcription.rs1use serde::{Deserialize, Serialize};
2
3use crate::openai::common::Rest;
4
5use crate::openai::audio::AudioUsage;
6
7use super::super::super::RealtimeError;
8
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
10#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
11pub struct RealtimeInputTranscriptionDeltaEvent {
12 pub item_id: String,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub content_index: Option<u32>,
15 pub delta: String,
16 #[serde(default, flatten)]
17 pub rest: Rest,
18}
19
20#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
21#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
22pub struct RealtimeInputTranscriptionCompletedEvent {
23 pub item_id: String,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub content_index: Option<u32>,
26 pub transcript: String,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub usage: Option<AudioUsage>,
29 #[serde(default, flatten)]
30 pub rest: Rest,
31}
32
33#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
34#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
35pub struct RealtimeInputTranscriptionFailedEvent {
36 pub item_id: String,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub content_index: Option<u32>,
39 pub error: RealtimeError,
40 #[serde(default, flatten)]
41 pub rest: Rest,
42}
43
44#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
45#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
46pub struct RealtimeInputTranscriptionSegmentEvent {
47 pub item_id: String,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub id: Option<String>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub speaker: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub text: Option<String>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub start: Option<f64>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub end: Option<f64>,
58 #[serde(default, flatten)]
59 pub rest: Rest,
60}
61
62#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
63#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
64pub struct RealtimeInputAudioBufferCommittedEvent {
65 pub item_id: String,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub previous_item_id: Option<String>,
68 #[serde(default, flatten)]
69 pub rest: Rest,
70}
71
72#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
73#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
74pub struct RealtimeInputAudioBufferClearedEvent {
75 #[serde(default, flatten)]
76 pub rest: Rest,
77}
78
79#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
80#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
81pub struct RealtimeInputAudioSpeechStartedEvent {
82 pub item_id: String,
83 pub audio_start_ms: u64,
84 #[serde(default, flatten)]
85 pub rest: Rest,
86}
87
88#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
89#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
90pub struct RealtimeInputAudioSpeechStoppedEvent {
91 pub item_id: String,
92 pub audio_end_ms: u64,
93 #[serde(default, flatten)]
94 pub rest: Rest,
95}
96
97#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
98#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
99pub struct RealtimeInputAudioTimeoutEvent {
100 #[serde(skip_serializing_if = "Option::is_none")]
101 pub item_id: Option<String>,
102 #[serde(skip_serializing_if = "Option::is_none")]
103 pub audio_start_ms: Option<u64>,
104 #[serde(skip_serializing_if = "Option::is_none")]
105 pub audio_end_ms: Option<u64>,
106 #[serde(default, flatten)]
107 pub rest: Rest,
108}
109
110#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
111#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
112pub struct RealtimeOutputAudioBufferEvent {
113 pub response_id: String,
114 #[serde(default, flatten)]
115 pub rest: Rest,
116}