1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct WorkflowOpenAiModel {
16 #[serde(rename = "provider")]
18 pub provider: ProviderTrue,
19 #[serde(rename = "model")]
21 pub model: ModelTrue,
22 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
24 pub temperature: Option<f64>,
25 #[serde(rename = "maxTokens", skip_serializing_if = "Option::is_none")]
27 pub max_tokens: Option<f64>,
28}
29
30impl WorkflowOpenAiModel {
31 pub fn new(provider: ProviderTrue, model: ModelTrue) -> WorkflowOpenAiModel {
32 WorkflowOpenAiModel {
33 provider,
34 model,
35 temperature: None,
36 max_tokens: None,
37 }
38 }
39}
40#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
42pub enum ProviderTrue {
43 #[serde(rename = "openai")]
44 Openai,
45}
46
47impl Default for ProviderTrue {
48 fn default() -> ProviderTrue {
49 Self::Openai
50 }
51}
52#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
54pub enum ModelTrue {
55 #[serde(rename = "gpt-4.1-2025-04-14")]
56 Gpt4Period120250414,
57 #[serde(rename = "gpt-4.1-mini-2025-04-14")]
58 Gpt4Period1Mini20250414,
59 #[serde(rename = "gpt-4.1-nano-2025-04-14")]
60 Gpt4Period1Nano20250414,
61 #[serde(rename = "gpt-4.1")]
62 Gpt4Period1,
63 #[serde(rename = "gpt-4.1-mini")]
64 Gpt4Period1Mini,
65 #[serde(rename = "gpt-4.1-nano")]
66 Gpt4Period1Nano,
67 #[serde(rename = "gpt-4.5-preview")]
68 Gpt4Period5Preview,
69 #[serde(rename = "chatgpt-4o-latest")]
70 Chatgpt4oLatest,
71 #[serde(rename = "o3")]
72 O3,
73 #[serde(rename = "o3-mini")]
74 O3Mini,
75 #[serde(rename = "o4-mini")]
76 O4Mini,
77 #[serde(rename = "o1-preview")]
78 O1Preview,
79 #[serde(rename = "o1-preview-2024-09-12")]
80 O1Preview20240912,
81 #[serde(rename = "o1-mini")]
82 O1Mini,
83 #[serde(rename = "o1-mini-2024-09-12")]
84 O1Mini20240912,
85 #[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
86 Gpt4oRealtimePreview20241001,
87 #[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
88 Gpt4oRealtimePreview20241217,
89 #[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
90 Gpt4oMiniRealtimePreview20241217,
91 #[serde(rename = "gpt-4o-mini-2024-07-18")]
92 Gpt4oMini20240718,
93 #[serde(rename = "gpt-4o-mini")]
94 Gpt4oMini,
95 #[serde(rename = "gpt-4o")]
96 Gpt4o,
97 #[serde(rename = "gpt-4o-2024-05-13")]
98 Gpt4o20240513,
99 #[serde(rename = "gpt-4o-2024-08-06")]
100 Gpt4o20240806,
101 #[serde(rename = "gpt-4o-2024-11-20")]
102 Gpt4o20241120,
103 #[serde(rename = "gpt-4-turbo")]
104 Gpt4Turbo,
105 #[serde(rename = "gpt-4-turbo-2024-04-09")]
106 Gpt4Turbo20240409,
107 #[serde(rename = "gpt-4-turbo-preview")]
108 Gpt4TurboPreview,
109 #[serde(rename = "gpt-4-0125-preview")]
110 Gpt40125Preview,
111 #[serde(rename = "gpt-4-1106-preview")]
112 Gpt41106Preview,
113 #[serde(rename = "gpt-4")]
114 Gpt4,
115 #[serde(rename = "gpt-4-0613")]
116 Gpt40613,
117 #[serde(rename = "gpt-3.5-turbo")]
118 Gpt3Period5Turbo,
119 #[serde(rename = "gpt-3.5-turbo-0125")]
120 Gpt3Period5Turbo0125,
121 #[serde(rename = "gpt-3.5-turbo-1106")]
122 Gpt3Period5Turbo1106,
123 #[serde(rename = "gpt-3.5-turbo-16k")]
124 Gpt3Period5Turbo16k,
125 #[serde(rename = "gpt-3.5-turbo-0613")]
126 Gpt3Period5Turbo0613,
127 #[serde(rename = "gpt-4.1-2025-04-14:westus")]
128 Gpt4Period120250414ColonWestus,
129 #[serde(rename = "gpt-4.1-2025-04-14:eastus2")]
130 Gpt4Period120250414ColonEastus2,
131 #[serde(rename = "gpt-4.1-2025-04-14:eastus")]
132 Gpt4Period120250414ColonEastus,
133 #[serde(rename = "gpt-4.1-2025-04-14:westus3")]
134 Gpt4Period120250414ColonWestus3,
135 #[serde(rename = "gpt-4.1-2025-04-14:northcentralus")]
136 Gpt4Period120250414ColonNorthcentralus,
137 #[serde(rename = "gpt-4.1-2025-04-14:southcentralus")]
138 Gpt4Period120250414ColonSouthcentralus,
139 #[serde(rename = "gpt-4.1-mini-2025-04-14:westus")]
140 Gpt4Period1Mini20250414ColonWestus,
141 #[serde(rename = "gpt-4.1-mini-2025-04-14:eastus2")]
142 Gpt4Period1Mini20250414ColonEastus2,
143 #[serde(rename = "gpt-4.1-mini-2025-04-14:eastus")]
144 Gpt4Period1Mini20250414ColonEastus,
145 #[serde(rename = "gpt-4.1-mini-2025-04-14:westus3")]
146 Gpt4Period1Mini20250414ColonWestus3,
147 #[serde(rename = "gpt-4.1-mini-2025-04-14:northcentralus")]
148 Gpt4Period1Mini20250414ColonNorthcentralus,
149 #[serde(rename = "gpt-4.1-mini-2025-04-14:southcentralus")]
150 Gpt4Period1Mini20250414ColonSouthcentralus,
151 #[serde(rename = "gpt-4.1-nano-2025-04-14:westus")]
152 Gpt4Period1Nano20250414ColonWestus,
153 #[serde(rename = "gpt-4.1-nano-2025-04-14:eastus2")]
154 Gpt4Period1Nano20250414ColonEastus2,
155 #[serde(rename = "gpt-4.1-nano-2025-04-14:westus3")]
156 Gpt4Period1Nano20250414ColonWestus3,
157 #[serde(rename = "gpt-4.1-nano-2025-04-14:northcentralus")]
158 Gpt4Period1Nano20250414ColonNorthcentralus,
159 #[serde(rename = "gpt-4.1-nano-2025-04-14:southcentralus")]
160 Gpt4Period1Nano20250414ColonSouthcentralus,
161 #[serde(rename = "gpt-4o-2024-11-20:swedencentral")]
162 Gpt4o20241120ColonSwedencentral,
163 #[serde(rename = "gpt-4o-2024-11-20:westus")]
164 Gpt4o20241120ColonWestus,
165 #[serde(rename = "gpt-4o-2024-11-20:eastus2")]
166 Gpt4o20241120ColonEastus2,
167 #[serde(rename = "gpt-4o-2024-11-20:eastus")]
168 Gpt4o20241120ColonEastus,
169 #[serde(rename = "gpt-4o-2024-11-20:westus3")]
170 Gpt4o20241120ColonWestus3,
171 #[serde(rename = "gpt-4o-2024-11-20:southcentralus")]
172 Gpt4o20241120ColonSouthcentralus,
173 #[serde(rename = "gpt-4o-2024-08-06:westus")]
174 Gpt4o20240806ColonWestus,
175 #[serde(rename = "gpt-4o-2024-08-06:westus3")]
176 Gpt4o20240806ColonWestus3,
177 #[serde(rename = "gpt-4o-2024-08-06:eastus")]
178 Gpt4o20240806ColonEastus,
179 #[serde(rename = "gpt-4o-2024-08-06:eastus2")]
180 Gpt4o20240806ColonEastus2,
181 #[serde(rename = "gpt-4o-2024-08-06:northcentralus")]
182 Gpt4o20240806ColonNorthcentralus,
183 #[serde(rename = "gpt-4o-2024-08-06:southcentralus")]
184 Gpt4o20240806ColonSouthcentralus,
185 #[serde(rename = "gpt-4o-mini-2024-07-18:westus")]
186 Gpt4oMini20240718ColonWestus,
187 #[serde(rename = "gpt-4o-mini-2024-07-18:westus3")]
188 Gpt4oMini20240718ColonWestus3,
189 #[serde(rename = "gpt-4o-mini-2024-07-18:eastus")]
190 Gpt4oMini20240718ColonEastus,
191 #[serde(rename = "gpt-4o-mini-2024-07-18:eastus2")]
192 Gpt4oMini20240718ColonEastus2,
193 #[serde(rename = "gpt-4o-mini-2024-07-18:northcentralus")]
194 Gpt4oMini20240718ColonNorthcentralus,
195 #[serde(rename = "gpt-4o-mini-2024-07-18:southcentralus")]
196 Gpt4oMini20240718ColonSouthcentralus,
197 #[serde(rename = "gpt-4o-2024-05-13:eastus2")]
198 Gpt4o20240513ColonEastus2,
199 #[serde(rename = "gpt-4o-2024-05-13:eastus")]
200 Gpt4o20240513ColonEastus,
201 #[serde(rename = "gpt-4o-2024-05-13:northcentralus")]
202 Gpt4o20240513ColonNorthcentralus,
203 #[serde(rename = "gpt-4o-2024-05-13:southcentralus")]
204 Gpt4o20240513ColonSouthcentralus,
205 #[serde(rename = "gpt-4o-2024-05-13:westus3")]
206 Gpt4o20240513ColonWestus3,
207 #[serde(rename = "gpt-4o-2024-05-13:westus")]
208 Gpt4o20240513ColonWestus,
209 #[serde(rename = "gpt-4-turbo-2024-04-09:eastus2")]
210 Gpt4Turbo20240409ColonEastus2,
211 #[serde(rename = "gpt-4-0125-preview:eastus")]
212 Gpt40125PreviewColonEastus,
213 #[serde(rename = "gpt-4-0125-preview:northcentralus")]
214 Gpt40125PreviewColonNorthcentralus,
215 #[serde(rename = "gpt-4-0125-preview:southcentralus")]
216 Gpt40125PreviewColonSouthcentralus,
217 #[serde(rename = "gpt-4-1106-preview:australia")]
218 Gpt41106PreviewColonAustralia,
219 #[serde(rename = "gpt-4-1106-preview:canadaeast")]
220 Gpt41106PreviewColonCanadaeast,
221 #[serde(rename = "gpt-4-1106-preview:france")]
222 Gpt41106PreviewColonFrance,
223 #[serde(rename = "gpt-4-1106-preview:india")]
224 Gpt41106PreviewColonIndia,
225 #[serde(rename = "gpt-4-1106-preview:norway")]
226 Gpt41106PreviewColonNorway,
227 #[serde(rename = "gpt-4-1106-preview:swedencentral")]
228 Gpt41106PreviewColonSwedencentral,
229 #[serde(rename = "gpt-4-1106-preview:uk")]
230 Gpt41106PreviewColonUk,
231 #[serde(rename = "gpt-4-1106-preview:westus")]
232 Gpt41106PreviewColonWestus,
233 #[serde(rename = "gpt-4-1106-preview:westus3")]
234 Gpt41106PreviewColonWestus3,
235 #[serde(rename = "gpt-4-0613:canadaeast")]
236 Gpt40613ColonCanadaeast,
237 #[serde(rename = "gpt-3.5-turbo-0125:canadaeast")]
238 Gpt3Period5Turbo0125ColonCanadaeast,
239 #[serde(rename = "gpt-3.5-turbo-0125:northcentralus")]
240 Gpt3Period5Turbo0125ColonNorthcentralus,
241 #[serde(rename = "gpt-3.5-turbo-0125:southcentralus")]
242 Gpt3Period5Turbo0125ColonSouthcentralus,
243 #[serde(rename = "gpt-3.5-turbo-1106:canadaeast")]
244 Gpt3Period5Turbo1106ColonCanadaeast,
245 #[serde(rename = "gpt-3.5-turbo-1106:westus")]
246 Gpt3Period5Turbo1106ColonWestus,
247}
248
249impl Default for ModelTrue {
250 fn default() -> ModelTrue {
251 Self::Gpt4Period120250414
252 }
253}