vapi_client/models/
create_assistant_dto_model.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17/// CreateAssistantDtoModel : These are the options for the assistant's LLM.
18/// These are the options for the assistant's LLM.
19#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, ToSchema)]
20#[serde(untagged)]
21pub enum CreateAssistantDtoModel {
22    AnyscaleModel(models::AnyscaleModel),
23    AnthropicModel(models::AnthropicModel),
24    CustomLlmModel(models::CustomLlmModel),
25    DeepInfraModel(models::DeepInfraModel),
26    GoogleModel(models::GoogleModel),
27    GroqModel(models::GroqModel),
28    InflectionAiModel(models::InflectionAiModel),
29    DeepSeekModel(models::DeepSeekModel),
30    OpenAiModel(models::OpenAiModel),
31    OpenRouterModel(models::OpenRouterModel),
32    PerplexityAiModel(models::PerplexityAiModel),
33    TogetherAiModel(models::TogetherAiModel),
34    VapiModel(models::VapiModel),
35    XaiModel(models::XaiModel),
36}
37
38impl Default for CreateAssistantDtoModel {
39    fn default() -> Self {
40        Self::AnyscaleModel(Default::default())
41    }
42}
43///
44#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
45pub enum Provider {
46    #[serde(rename = "xai")]
47    Xai,
48}
49
50impl Default for Provider {
51    fn default() -> Provider {
52        Self::Xai
53    }
54}
55/// This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
56#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
57pub enum Model {
58    #[serde(rename = "grok-beta")]
59    GrokBeta,
60    #[serde(rename = "grok-2")]
61    Grok2,
62    #[serde(rename = "grok-3")]
63    Grok3,
64}
65
66impl Default for Model {
67    fn default() -> Model {
68        Self::GrokBeta
69    }
70}
71/// 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`.
72#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
73pub enum MetadataSendMode {
74    #[serde(rename = "off")]
75    Off,
76    #[serde(rename = "variable")]
77    Variable,
78    #[serde(rename = "destructured")]
79    Destructured,
80}
81
82impl Default for MetadataSendMode {
83    fn default() -> MetadataSendMode {
84        Self::Off
85    }
86}
87/// 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.
88#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, ToSchema)]
89pub enum FallbackModels {
90    #[serde(rename = "gpt-4.5-preview")]
91    Gpt4Period5Preview,
92    #[serde(rename = "chatgpt-4o-latest")]
93    Chatgpt4oLatest,
94    #[serde(rename = "o3-mini")]
95    O3Mini,
96    #[serde(rename = "o1-preview")]
97    O1Preview,
98    #[serde(rename = "o1-preview-2024-09-12")]
99    O1Preview20240912,
100    #[serde(rename = "o1-mini")]
101    O1Mini,
102    #[serde(rename = "o1-mini-2024-09-12")]
103    O1Mini20240912,
104    #[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
105    Gpt4oRealtimePreview20241001,
106    #[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
107    Gpt4oRealtimePreview20241217,
108    #[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
109    Gpt4oMiniRealtimePreview20241217,
110    #[serde(rename = "gpt-4o-mini")]
111    Gpt4oMini,
112    #[serde(rename = "gpt-4o-mini-2024-07-18")]
113    Gpt4oMini20240718,
114    #[serde(rename = "gpt-4o")]
115    Gpt4o,
116    #[serde(rename = "gpt-4o-2024-05-13")]
117    Gpt4o20240513,
118    #[serde(rename = "gpt-4o-2024-08-06")]
119    Gpt4o20240806,
120    #[serde(rename = "gpt-4o-2024-11-20")]
121    Gpt4o20241120,
122    #[serde(rename = "gpt-4-turbo")]
123    Gpt4Turbo,
124    #[serde(rename = "gpt-4-turbo-2024-04-09")]
125    Gpt4Turbo20240409,
126    #[serde(rename = "gpt-4-turbo-preview")]
127    Gpt4TurboPreview,
128    #[serde(rename = "gpt-4-0125-preview")]
129    Gpt40125Preview,
130    #[serde(rename = "gpt-4-1106-preview")]
131    Gpt41106Preview,
132    #[serde(rename = "gpt-4")]
133    Gpt4,
134    #[serde(rename = "gpt-4-0613")]
135    Gpt40613,
136    #[serde(rename = "gpt-3.5-turbo")]
137    Gpt3Period5Turbo,
138    #[serde(rename = "gpt-3.5-turbo-0125")]
139    Gpt3Period5Turbo0125,
140    #[serde(rename = "gpt-3.5-turbo-1106")]
141    Gpt3Period5Turbo1106,
142    #[serde(rename = "gpt-3.5-turbo-16k")]
143    Gpt3Period5Turbo16k,
144    #[serde(rename = "gpt-3.5-turbo-0613")]
145    Gpt3Period5Turbo0613,
146}
147
148impl Default for FallbackModels {
149    fn default() -> FallbackModels {
150        Self::Gpt4Period5Preview
151    }
152}