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