1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
17#[serde(untagged)]
18pub enum CreateAssistantDtoModel {
19 AnyscaleModel(Box<models::AnyscaleModel>),
20 AnthropicModel(Box<models::AnthropicModel>),
21 CerebrasModel(Box<models::CerebrasModel>),
22 CustomLlmModel(Box<models::CustomLlmModel>),
23 DeepInfraModel(Box<models::DeepInfraModel>),
24 DeepSeekModel(Box<models::DeepSeekModel>),
25 GoogleModel(Box<models::GoogleModel>),
26 GroqModel(Box<models::GroqModel>),
27 InflectionAiModel(Box<models::InflectionAiModel>),
28 OpenAiModel(Box<models::OpenAiModel>),
29 OpenRouterModel(Box<models::OpenRouterModel>),
30 PerplexityAiModel(Box<models::PerplexityAiModel>),
31 TogetherAiModel(Box<models::TogetherAiModel>),
32 VapiModel(Box<models::VapiModel>),
33 XaiModel(Box<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}
151