1use serde::{Deserialize, Serialize};
12use utoipa::ToSchema;
13
14
15use crate::models;
16
17#[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#[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#[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#[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#[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}