1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct FallbackOpenAiTranscriber {
16 #[serde(rename = "provider")]
18 pub provider: ProviderTrue,
19 #[serde(rename = "model")]
21 pub model: ModelTrue,
22 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
24 pub language: Option<LanguageTrue>,
25}
26
27impl FallbackOpenAiTranscriber {
28 pub fn new(provider: ProviderTrue, model: ModelTrue) -> FallbackOpenAiTranscriber {
29 FallbackOpenAiTranscriber {
30 provider,
31 model,
32 language: None,
33 }
34 }
35}
36#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
38pub enum ProviderTrue {
39 #[serde(rename = "openai")]
40 Openai,
41}
42
43impl Default for ProviderTrue {
44 fn default() -> ProviderTrue {
45 Self::Openai
46 }
47}
48#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
50pub enum ModelTrue {
51 #[serde(rename = "gpt-4o-transcribe")]
52 Gpt4oTranscribe,
53 #[serde(rename = "gpt-4o-mini-transcribe")]
54 Gpt4oMiniTranscribe,
55}
56
57impl Default for ModelTrue {
58 fn default() -> ModelTrue {
59 Self::Gpt4oTranscribe
60 }
61}
62#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
64pub enum LanguageTrue {
65 #[serde(rename = "af")]
66 Af,
67 #[serde(rename = "ar")]
68 Ar,
69 #[serde(rename = "hy")]
70 Hy,
71 #[serde(rename = "az")]
72 Az,
73 #[serde(rename = "be")]
74 Be,
75 #[serde(rename = "bs")]
76 Bs,
77 #[serde(rename = "bg")]
78 Bg,
79 #[serde(rename = "ca")]
80 Ca,
81 #[serde(rename = "zh")]
82 Zh,
83 #[serde(rename = "hr")]
84 Hr,
85 #[serde(rename = "cs")]
86 Cs,
87 #[serde(rename = "da")]
88 Da,
89 #[serde(rename = "nl")]
90 Nl,
91 #[serde(rename = "en")]
92 En,
93 #[serde(rename = "et")]
94 Et,
95 #[serde(rename = "fi")]
96 Fi,
97 #[serde(rename = "fr")]
98 Fr,
99 #[serde(rename = "gl")]
100 Gl,
101 #[serde(rename = "de")]
102 De,
103 #[serde(rename = "el")]
104 El,
105 #[serde(rename = "he")]
106 He,
107 #[serde(rename = "hi")]
108 Hi,
109 #[serde(rename = "hu")]
110 Hu,
111 #[serde(rename = "is")]
112 Is,
113 #[serde(rename = "id")]
114 Id,
115 #[serde(rename = "it")]
116 It,
117 #[serde(rename = "ja")]
118 Ja,
119 #[serde(rename = "kn")]
120 Kn,
121 #[serde(rename = "kk")]
122 Kk,
123 #[serde(rename = "ko")]
124 Ko,
125 #[serde(rename = "lv")]
126 Lv,
127 #[serde(rename = "lt")]
128 Lt,
129 #[serde(rename = "mk")]
130 Mk,
131 #[serde(rename = "ms")]
132 Ms,
133 #[serde(rename = "mr")]
134 Mr,
135 #[serde(rename = "mi")]
136 Mi,
137 #[serde(rename = "ne")]
138 Ne,
139 #[serde(rename = "no")]
140 No,
141 #[serde(rename = "fa")]
142 Fa,
143 #[serde(rename = "pl")]
144 Pl,
145 #[serde(rename = "pt")]
146 Pt,
147 #[serde(rename = "ro")]
148 Ro,
149 #[serde(rename = "ru")]
150 Ru,
151 #[serde(rename = "sr")]
152 Sr,
153 #[serde(rename = "sk")]
154 Sk,
155 #[serde(rename = "sl")]
156 Sl,
157 #[serde(rename = "es")]
158 Es,
159 #[serde(rename = "sw")]
160 Sw,
161 #[serde(rename = "sv")]
162 Sv,
163 #[serde(rename = "tl")]
164 Tl,
165 #[serde(rename = "ta")]
166 Ta,
167 #[serde(rename = "th")]
168 Th,
169 #[serde(rename = "tr")]
170 Tr,
171 #[serde(rename = "uk")]
172 Uk,
173 #[serde(rename = "ur")]
174 Ur,
175 #[serde(rename = "vi")]
176 Vi,
177 #[serde(rename = "cy")]
178 Cy,
179}
180
181impl Default for LanguageTrue {
182 fn default() -> LanguageTrue {
183 Self::Af
184 }
185}