vapi_client/models/
workflow_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/// WorkflowModel : These are the options for the workflow's LLM.
15/// These are the options for the workflow's LLM.
16#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
17#[serde(untagged)]
18pub enum WorkflowModel {
19    AnthropicModel(models::AnthropicModel),
20    AnyscaleModel(models::AnyscaleModel),
21    CerebrasModel(models::CerebrasModel),
22    CustomLlmModel(models::CustomLlmModel),
23    DeepInfraModel(models::DeepInfraModel),
24    DeepSeekModel(models::DeepSeekModel),
25    GoogleModel(models::GoogleModel),
26    GroqModel(models::GroqModel),
27    InflectionAiModel(models::InflectionAiModel),
28    OpenAiModel(models::OpenAiModel),
29    OpenRouterModel(models::OpenRouterModel),
30    PerplexityAiModel(models::PerplexityAiModel),
31    TogetherAiModel(models::TogetherAiModel),
32    XaiModel(models::XaiModel),
33}
34
35impl Default for WorkflowModel {
36    fn default() -> Self {
37        Self::AnthropicModel(Default::default())
38    }
39}
40/// This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
41#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
42pub enum Model {
43    #[serde(rename = "grok-beta")]
44    GrokBeta,
45    #[serde(rename = "grok-2")]
46    Grok2,
47    #[serde(rename = "grok-3")]
48    Grok3,
49}
50
51impl Default for Model {
52    fn default() -> Model {
53        Self::GrokBeta
54    }
55}
56/// 
57#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
58pub enum Provider {
59    #[serde(rename = "xai")]
60    Xai,
61}
62
63impl Default for Provider {
64    fn default() -> Provider {
65        Self::Xai
66    }
67}
68/// This determines whether metadata is sent in requests to the custom provider.  - `off` will not send any metadata. payload will look like `{ messages }` - `variable` will send `assistant.metadata` as a variable on the payload. payload will look like `{ messages, metadata }` - `destructured` will send `assistant.metadata` fields directly on the payload. payload will look like `{ messages, ...metadata }`  Further, `variable` and `destructured` will send `call`, `phoneNumber`, and `customer` objects in the payload.  Default is `variable`.
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
70pub enum MetadataSendMode {
71    #[serde(rename = "off")]
72    Off,
73    #[serde(rename = "variable")]
74    Variable,
75    #[serde(rename = "destructured")]
76    Destructured,
77}
78
79impl Default for MetadataSendMode {
80    fn default() -> MetadataSendMode {
81        Self::Off
82    }
83}
84/// These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.
85#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
86pub enum FallbackModels {
87    #[serde(rename = "gpt-4.1")]
88    Gpt4Period1,
89    #[serde(rename = "gpt-4.1-mini")]
90    Gpt4Period1Mini,
91    #[serde(rename = "gpt-4.1-nano")]
92    Gpt4Period1Nano,
93    #[serde(rename = "gpt-4.5-preview")]
94    Gpt4Period5Preview,
95    #[serde(rename = "chatgpt-4o-latest")]
96    Chatgpt4oLatest,
97    #[serde(rename = "o3-mini")]
98    O3Mini,
99    #[serde(rename = "o1-preview")]
100    O1Preview,
101    #[serde(rename = "o1-preview-2024-09-12")]
102    O1Preview20240912,
103    #[serde(rename = "o1-mini")]
104    O1Mini,
105    #[serde(rename = "o1-mini-2024-09-12")]
106    O1Mini20240912,
107    #[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
108    Gpt4oRealtimePreview20241001,
109    #[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
110    Gpt4oRealtimePreview20241217,
111    #[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
112    Gpt4oMiniRealtimePreview20241217,
113    #[serde(rename = "gpt-4o-mini-2024-07-18")]
114    Gpt4oMini20240718,
115    #[serde(rename = "gpt-4o-mini")]
116    Gpt4oMini,
117    #[serde(rename = "gpt-4o")]
118    Gpt4o,
119    #[serde(rename = "gpt-4o-2024-05-13")]
120    Gpt4o20240513,
121    #[serde(rename = "gpt-4o-2024-08-06")]
122    Gpt4o20240806,
123    #[serde(rename = "gpt-4o-2024-11-20")]
124    Gpt4o20241120,
125    #[serde(rename = "gpt-4-turbo")]
126    Gpt4Turbo,
127    #[serde(rename = "gpt-4-turbo-2024-04-09")]
128    Gpt4Turbo20240409,
129    #[serde(rename = "gpt-4-turbo-preview")]
130    Gpt4TurboPreview,
131    #[serde(rename = "gpt-4-0125-preview")]
132    Gpt40125Preview,
133    #[serde(rename = "gpt-4-1106-preview")]
134    Gpt41106Preview,
135    #[serde(rename = "gpt-4")]
136    Gpt4,
137    #[serde(rename = "gpt-4-0613")]
138    Gpt40613,
139    #[serde(rename = "gpt-3.5-turbo")]
140    Gpt3Period5Turbo,
141    #[serde(rename = "gpt-3.5-turbo-0125")]
142    Gpt3Period5Turbo0125,
143    #[serde(rename = "gpt-3.5-turbo-1106")]
144    Gpt3Period5Turbo1106,
145    #[serde(rename = "gpt-3.5-turbo-16k")]
146    Gpt3Period5Turbo16k,
147    #[serde(rename = "gpt-3.5-turbo-0613")]
148    Gpt3Period5Turbo0613,
149}
150
151impl Default for FallbackModels {
152    fn default() -> FallbackModels {
153        Self::Gpt4Period1
154    }
155}
156