1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
17#[serde(untagged)]
18pub enum CreateAssistantDtoModel {
19 AnyscaleModel(models::AnyscaleModel),
20 AnthropicModel(models::AnthropicModel),
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 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.1")]
89 Gpt4Period1,
90 #[serde(rename = "gpt-4.1-mini")]
91 Gpt4Period1Mini,
92 #[serde(rename = "gpt-4.1-nano")]
93 Gpt4Period1Nano,
94 #[serde(rename = "gpt-4.5-preview")]
95 Gpt4Period5Preview,
96 #[serde(rename = "chatgpt-4o-latest")]
97 Chatgpt4oLatest,
98 #[serde(rename = "o3-mini")]
99 O3Mini,
100 #[serde(rename = "o1-preview")]
101 O1Preview,
102 #[serde(rename = "o1-preview-2024-09-12")]
103 O1Preview20240912,
104 #[serde(rename = "o1-mini")]
105 O1Mini,
106 #[serde(rename = "o1-mini-2024-09-12")]
107 O1Mini20240912,
108 #[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
109 Gpt4oRealtimePreview20241001,
110 #[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
111 Gpt4oRealtimePreview20241217,
112 #[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
113 Gpt4oMiniRealtimePreview20241217,
114 #[serde(rename = "gpt-4o-mini-2024-07-18")]
115 Gpt4oMini20240718,
116 #[serde(rename = "gpt-4o-mini")]
117 Gpt4oMini,
118 #[serde(rename = "gpt-4o")]
119 Gpt4o,
120 #[serde(rename = "gpt-4o-2024-05-13")]
121 Gpt4o20240513,
122 #[serde(rename = "gpt-4o-2024-08-06")]
123 Gpt4o20240806,
124 #[serde(rename = "gpt-4o-2024-11-20")]
125 Gpt4o20241120,
126 #[serde(rename = "gpt-4-turbo")]
127 Gpt4Turbo,
128 #[serde(rename = "gpt-4-turbo-2024-04-09")]
129 Gpt4Turbo20240409,
130 #[serde(rename = "gpt-4-turbo-preview")]
131 Gpt4TurboPreview,
132 #[serde(rename = "gpt-4-0125-preview")]
133 Gpt40125Preview,
134 #[serde(rename = "gpt-4-1106-preview")]
135 Gpt41106Preview,
136 #[serde(rename = "gpt-4")]
137 Gpt4,
138 #[serde(rename = "gpt-4-0613")]
139 Gpt40613,
140 #[serde(rename = "gpt-3.5-turbo")]
141 Gpt3Period5Turbo,
142 #[serde(rename = "gpt-3.5-turbo-0125")]
143 Gpt3Period5Turbo0125,
144 #[serde(rename = "gpt-3.5-turbo-1106")]
145 Gpt3Period5Turbo1106,
146 #[serde(rename = "gpt-3.5-turbo-16k")]
147 Gpt3Period5Turbo16k,
148 #[serde(rename = "gpt-3.5-turbo-0613")]
149 Gpt3Period5Turbo0613,
150}
151
152impl Default for FallbackModels {
153 fn default() -> FallbackModels {
154 Self::Gpt4Period1
155 }
156}
157