Skip to main content

gproxy_protocol/openai/realtime/server_events/payloads/
transcription.rs

1use 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}