vapi_client/models/
workflow_open_ai_model.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct WorkflowOpenAiModel {
16    /// This is the provider of the model (`openai`).
17    #[serde(rename = "provider")]
18    pub provider: ProviderTrue,
19    /// This is the OpenAI model that will be used.  When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense. This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.
20    #[serde(rename = "model")]
21    pub model: ModelTrue,
22    /// This is the temperature of the model.
23    #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
24    pub temperature: Option<f64>,
25    /// This is the max tokens of the model.
26    #[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/// This is the provider of the model (`openai`).
41#[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/// This is the OpenAI model that will be used.  When using Vapi OpenAI or your own Azure Credentials, you have the option to specify the region for the selected model. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest region that make sense. This is helpful when you are required to comply with Data Residency rules. Learn more about Azure regions here https://azure.microsoft.com/en-us/explore/global-infrastructure/data-residency/.
53#[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}